/***************************************************
 * jr.c
 *
 * Created on: Mar 20, 2017
 * Author: zjjin@ccore.com
 ***************************************************/


#include "../INCLUDE/jr.h"
#include "../INCLUDE/pci_csec.h"
#include "../INCLUDE/compate.h"
#include "../INCLUDE/sec.h"
#include "../INCLUDE/desc_constr.h"

#include "../INCLUDE/ccp903_dbg.h"

int dma_endian;

extern void schedule_work_unbound(struct work_struct *w);

const unsigned int sms4_code_buf[] =
{
		// aes encrytion without jump instruction, decryption with jump instruction
		// support ECB/CBC/CTR/CFB/OFB mode,
		// inter-word * inside-word is big-endian
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x50b8001f,
		0x80c00000,0x00000007,0xffff8002,0x967d9461,0x0a5b0b5b,0x9ef0e67f,0x74c86b00,0x00000000,
		0x80c00000,0x00000007,0xffff884c,0x83432493,0x09a25561,0x825f153b,0x4d339580,0x00000000,
		0x80c00000,0x00000007,0xffff9031,0x5667f6a1,0x85aa19bd,0x4c77c8fa,0x28214e00,0x00000000,
		0x80c00000,0x00000007,0xffff9853,0x1fc7bafd,0x4a6fc04a,0xf40464d4,0x8e59f200,0x00000000,
		0x80c00000,0x00000007,0xffffa054,0x27c2f30c,0x9e2cc1dd,0x0bb9f9fe,0x5383a380,0x00000000,
		0x80c00000,0x00000007,0xffffa81a,0xceab3825,0x87f5fc45,0xed3238d9,0x40b5b400,0x00000000,
		0x80c00000,0x00000007,0xffffb043,0xbc10809d,0xbe1112d1,0x68ac31af,0x07120f00,0x00000000,
		0x80c00000,0x00000007,0xffffb84f,0x64625073,0x811b2629,0x13e9cfab,0xa3006a00,0x00000000,
		0x80c00000,0x00000007,0xffffc050,0x8ab0fce7,0x797bd1da,0x9c63a069,0x455ff500,0x00000000,
		0x80c00000,0x00000007,0xffffc871,0xd8c67a98,0x1949d6aa,0x8d1a4dd2,0x2ed77000,0x00000000,
		0x80c00000,0x00000007,0xffffd037,0xa72986d5,0x9194e030,0x65334117,0x717b0e80,0x00000000,
		0x80c00000,0x00000007,0xffffd828,0xadb636b9,0x357f8197,0xc77eef22,0x9bedea80,0x00000000,
		0x80c00000,0x00000007,0xffffe06c,0x2d080fa0,0xae6c88bf,0xde6eddc9,0x578dc680,0x00000000,
		0x80c00000,0x00000007,0xffffe858,0x5a72dc09,0x683a16de,0xbde6d2c4,0x18e08500,0x00000000,
		0x80c00000,0x00000007,0xfffff042,0x63376284,0xf8dcb2bf,0x3bcb0625,0x4bb4c480,0x00000000,
		0x80c00000,0x00000007,0xfffff824,0x1ce5eb9f,0x2ff73c90,0x26ee1d76,0x3ef80c00,0x00000000,
		0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00888880,0x00000000,
		0x82c00000,0x00000008,0x88c31843,0x04600800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x04000140,0x00000360,0x000a0000,0x002e0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00804308,0x62000f04,0x02104210,0x00782010,0x42088003,0xc1008030,0x00001e00,0x80000000,
		0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00111100,0x00000000,
		0x82c00000,0x00000011,0x11432845,0x04a01000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x00c18008,0x64003304,0x0e104108,0x012c0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x03900000,0x90cc0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d0d2,0x1a435fca,0x468690d2,0x12fe0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00c04300,0x00003c04,0x121b4348,0x4d2c0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000006,0x0c004220,0x01982070,0x42004309,0x60000000,0x00000000,0x00000000,
		0x00000000,0x0000001c,0x80000484,0x60000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d092,0x12435fca,0x46849092,0x12fe0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000006,0x02100000,0x01e02090,0xda124269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003060,0x0209000c,0xc1038010,0xc2104b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x0000e400,0x00241300,0x00000000,0x00000000,0x00000000,
		0x0148d052,0x0a435fca,0x46829052,0x12fe0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003010,0x4000000f,0x010486d0,0x52134b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003060,0x0201000c,0xc1038610,0x82084b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07200001,0x20980000,0x00000000,
		0x0148d012,0x02435fca,0x46809012,0x12fe0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x010486d0,0x12134b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01008010,0x10001e00,0x00000000,
		0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20043084,0x10420000,0x88000001,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x301fecff,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000007,0x80000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00010000,0xf0000000,0x08000780,0x00000080,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x41600201,
		0x04000140,0x000000a0,0x000a0000,0x00150000,0x50000001,0x28000280,0x00000c00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x401c081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4038101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4048141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40640c1e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000001,0x80000021,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80199980,0x00000000,
		0x82c00000,0x00000019,0x99c33847,0x04e01800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043384,0x704e0180,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00555500,0x00000000,
		0x00804308,0x74000f04,0x021042a0,0x00782010,0x420d0003,0xc1008010,0x28001e01,0x80000019,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80000000,0x80000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000014,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80000000,0x80000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000f,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000c,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80cccc80,0x80000000,
		0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x82020000,0x00000000,0x00000439,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
		0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
		0x82020000,0x00000000,0x00000439,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00004100,
		0x00c10008,0x62003304,0x0e104108,0x012c0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x03900000,0x70c80000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d0ce,0x19c35fca,0x468670ce,0x12fe5234,0x33867057,0xf291a19c,0x3380bf80,0x00000000,
		0x00c04300,0x00003c06,0x18004330,0x019830c0,0x021b000c,0xc10680d0,0x5a134b00,0x00000000,
		0x00000000,0x00000006,0x08004210,0x01982070,0x42004309,0x60000000,0x00000000,0x00000000,
		0x00000000,0x0000001c,0x80000384,0x40000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d08e,0x11c35fca,0x4684708e,0x12fe5234,0x23847057,0xf291a11c,0x2380bf80,0x00000000,
		0x00c30008,0x46003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000004,0x02104360,0x00780000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003040,0x0208800c,0xc1038010,0xc2104b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x0000e400,0x001c1200,0x00000000,0x00000000,0x00000000,
		0x0148d04e,0x09c35fca,0x4682704e,0x12fe5234,0x13827057,0xf291a09c,0x1380bf80,0x00000000,
		0x00c30008,0x26003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00002010,0x421b0003,0xc0000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003040,0x0200800c,0xc1028610,0x82084b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07200000,0xe0900000,0x00000000,
		0x0148d00e,0x01c35fca,0x4680700e,0x12fe5234,0x03807057,0xf291a01c,0x0380bf80,0x00000000,
		0x00c30008,0x06003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01008010,0xd8001e00,0x88000001,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x301fecff,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x401c081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4028101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4038141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40480c1e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000000,0x00400821,0x08218000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3084,0x10420001,0x800007c2,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38040082,0x10821800,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000000,0x00400821,0x08218000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3084,0x10420001,0x800007c4,
		0x008043a8,0x00000f04,0x02154100,0x00782010,0x6a100003,0xc1008150,0xc0001e00,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043084,0x10420000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000008,0x88c30841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3184,0x30460081,0x800007c6,
		0x0085c3a8,0x00000f04,0x2e154100,0x00782170,0x6a100003,0xc10b8150,0xc0001e00,0x00000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x00007fff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000005d,0xddc3b857,0x06e05800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3b85,0x706e0581,0x800007c9,
		0x008043a8,0x00000f04,0x02154100,0x00782010,0x6a100003,0xc1008150,0xc0001e00,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3084,0x10420001,0x800007ce,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x04000140,0x000000a0,0x000a0000,0x00150000,0x50000001,0x28000280,0x00000c00,0x80000301,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40c0101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40bc141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40b80c1e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4014081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000108,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x8000000c,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000108,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffd55500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3084,0x10420001,0x80000006,
		0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80555500,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000108,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043084,0x10420001,0x80000001,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x000051ff,
		0x00c10008,0x02003304,0x0e104108,0x012c0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x03900000,0x70c80000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d0ce,0x19c35fca,0x468670ce,0x12fe5234,0x33867057,0xf291a19c,0x3380bf80,0x00000000,
		0x00c04300,0x00003c06,0x18004330,0x019830c0,0x021b000c,0xc10680d0,0x5a134b00,0x00000000,
		0x00000000,0x00000006,0x08004110,0x01982070,0x42004309,0x60000000,0x00000000,0x00000000,
		0x00000000,0x0000001c,0x80000384,0x40000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d08e,0x11c35fca,0x4684708e,0x12fe5234,0x23847057,0xf291a11c,0x2380bf80,0x00000000,
		0x00c30008,0x46003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000004,0x02104360,0x00780000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003040,0x0210800c,0xc1038010,0xc2104b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x0000e400,0x001c1200,0x00000000,0x00000000,0x00000000,
		0x0148d04e,0x09c35fca,0x4682704e,0x12fe5234,0x13827057,0xf291a09c,0x1380bf80,0x00000000,
		0x00c30008,0x26003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00002010,0x421b0003,0xc0000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003040,0x0218800c,0xc1028610,0x82084b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07200000,0xe0900000,0x00000000,
		0x0148d00e,0x01c35fca,0x4680700e,0x12fe5234,0x03807057,0xf291a01c,0x0380bf80,0x00000000,
		0x00c30008,0x06003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01008010,0xd8001e00,0x90000101,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x2407ecff,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000000,0x00400821,0x08218000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3084,0x10420001,0x800007d9,
		0x00804008,0x74000f04,0x020842a0,0x00782010,0x820d0003,0xc1008610,0x28001e00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3084,0x10420001,0x800007df,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x80000301,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4034141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40540c1e,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xff800000,0x00000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3a85,0x506a0501,0x8000001a,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043a85,0x506a0501,0x80000015,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xff800000,0x80000000,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000010,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x8000000c,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x804ccc80,0x80000000,
		0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x82020000,0x00000000,0x00000439,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
		0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
		0x82020000,0x00000000,0x00000439,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00004100,
		0x00c10008,0x62003304,0x0e104108,0x012c0000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x03900000,0x70c80000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d0ce,0x19c35fca,0x468670ce,0x12fe5234,0x33867057,0xf291a19c,0x3380bf80,0x00000000,
		0x00c04300,0x00003c06,0x18004330,0x019830c0,0x021b000c,0xc10680d0,0x5a134b00,0x00000000,
		0x00000000,0x00000006,0x08004210,0x01982070,0x42004309,0x60000000,0x00000000,0x00000000,
		0x00000000,0x0000001c,0x80000384,0x40000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x0148d08e,0x11c35fca,0x4684708e,0x12fe5234,0x23847057,0xf291a11c,0x2380bf80,0x00000000,
		0x00c30008,0x46003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000004,0x02104360,0x00780000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003040,0x0208800c,0xc1038010,0xc2104b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x0000e400,0x001c1200,0x00000000,0x00000000,0x00000000,
		0x0148d04e,0x09c35fca,0x4682704e,0x12fe5234,0x13827057,0xf291a09c,0x1380bf80,0x00000000,
		0x00c30008,0x26003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00002010,0x421b0003,0xc0000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00003040,0x0200800c,0xc1028610,0x82084b00,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07200000,0xe0900000,0x00000000,
		0x0148d00e,0x01c35fca,0x4680700e,0x12fe5234,0x03807057,0xf291a01c,0x0380bf80,0x00000000,
		0x00c30008,0x06003306,0x18004360,0x019820d0,0x1a0b4269,0x60000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x01008010,0xd8001e00,0x88000001,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x301fecff,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4018141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40280c1e,
		0x00804008,0x74000f04,0x020842a0,0x00782010,0x820d0003,0xc1008150,0xc0001e00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000008,0x88c30841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3184,0x30460081,0x800007cc,
		0x00864008,0x74000f04,0x320842a0,0x00782190,0x820d0003,0xc10c8150,0xc0001e00,0x80000300,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x00007fff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000066,0x6643c859,0x07206000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3c85,0x90720601,0x800007d1,
		0x008043a8,0x00000f04,0x02154100,0x00782010,0x6a100003,0xc1008150,0xc0001e00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000000,0x00430841,0x04200000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3084,0x10420001,0x800007d7,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000

};

const unsigned int aes128_code_buf[]=
{
		// aes encrytion without jump instruction, decryption with jump instruction
		// support ECB/CBC/CTR/CFB/OFB mode,
		// inter-word & inside-word are big-endian
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x50b4001f,
		0x80c00000,0x0000000b,0xffff801c,0x62d2b79b,0x3598796a,0xbdb53b84,0xbe293180,0x00000000,
		0x80c00000,0x0000000b,0xffff847d,0xbb6bd5f9,0xebc0ff4f,0x15d1b3a0,0x00df9800,0x00000000,
		0x80c00000,0x0000000b,0xffff8843,0xf87fa397,0xaccdfd41,0x3e9ce4f1,0xc13e6500,0x00000000,
		0x80c00000,0x0000000b,0xffff8c65,0xe074b96f,0x52624e22,0x57a1d147,0x6a1a5680,0x00000000,
		0x80c00000,0x0000000b,0xffff901e,0xe611fbe1,0x1fd31b19,0x134a49bd,0xfeaa5b80,0x00000000,
		0x80c00000,0x0000000b,0xffff9427,0x0ae198fd,0x6c213885,0xf8caf2a6,0x52f71a00,0x00000000,
		0x80c00000,0x0000000b,0xffff9859,0x4d1202ec,0xcb140c33,0x61d09197,0x63840200,0x00000000,
		0x80c00000,0x0000000b,0xffff9c12,0xbae8d945,0x93b6f5a4,0xf151402d,0x893b0380,0x00000000,
		0x80c00000,0x0000000b,0xffffa00b,0x504c2d34,0x37430db2,0x0d7b167c,0x41b90480,0x00000000,
		0x80c00000,0x0000000b,0xffffa449,0x425b17b2,0xf1ae94e6,0x59ae6b52,0x1dea2900,0x00000000,
		0x80c00000,0x0000000b,0xffffa86d,0x2ddcd8f6,0xfe7e9028,0x76a40038,0x68b62980,0x00000000,
		0x80c00000,0x0000000b,0xffffac42,0x67ceac46,0xa653a52b,0x9ca35f0a,0xe5af3500,0x00000000,
		0x80c00000,0x0000000b,0xffffb005,0x42e999de,0x26c62180,0x7dd5d56c,0x77c86800,0x00000000,
		0x80c00000,0x0000000b,0xffffb403,0x5422cfd9,0x9e5c2802,0xbfac0172,0x7cfba280,0x00000000,
		0x80c00000,0x0000000b,0xffffb801,0x7a879c1f,0xcee54947,0xc78f2016,0x51e82880,0x00000000,
		0x80c00000,0x0000000b,0xffffbc35,0xe9457989,0xff808801,0x90deed57,0xdb60de00,0x00000000,
		0x80c00000,0x0000000b,0xffffc075,0x0bee2233,0xcba7afa0,0xf60889c8,0x861d6680,0x00000000,
		0x80c00000,0x0000000b,0xffffc439,0xb9f30cda,0x2ef83267,0x1ee7bf79,0x53cbe200,0x00000000,
		0x80c00000,0x0000000b,0xffffc842,0xc41ac856,0x95739111,0x6e3a27d6,0x40cb3000,0x00000000,
		0x80c00000,0x0000000b,0xffffcc37,0x6def85ba,0xaf0e6f74,0x0a1bdc7c,0xf7712300,0x00000000,
		0x80c00000,0x0000000b,0xffffd044,0xae629214,0x830ea4b8,0x850d1d78,0x9923f000,0x00000000,
		0x80c00000,0x0000000b,0xffffd40d,0xbcdf720c,0x4ad54887,0x3131565b,0xe9b7e100,0x00000000,
		0x80c00000,0x0000000b,0xffffd810,0x54bca769,0x6ae346a5,0xb69f1bab,0x647e7380,0x00000000,
		0x80c00000,0x0000000b,0xffffdc7a,0x042d5766,0xbd3c32ff,0x75607a6d,0xab4d3600,0x00000000,
		0x80c00000,0x0000000b,0xffffe018,0xe363da03,0xd3440e19,0x975412ee,0xbc0fdd00,0x00000000,
		0x80c00000,0x0000000b,0xffffe42f,0xc57645c0,0x5e93a5ac,0x8f883a09,0x6ed8f400,0x00000000,
		0x80c00000,0x0000000b,0xffffe806,0x87257b5a,0x818ca454,0xb33fdaa8,0x9f303800,0x00000000,
		0x80c00000,0x0000000b,0xffffec77,0xcf4e0ee4,0xe0c9c34f,0xdcbd2bf2,0x9a96b080,0x00000000,
		0x80c00000,0x0000000b,0xfffff058,0x4a7ac715,0x6cd734a6,0x889dcc70,0x7c507080,0x00000000,
		0x80c00000,0x0000000b,0xfffff430,0xefcc9429,0xaac1e71e,0x74ddc3f5,0x8f644d80,0x00000000,
		0x80c00000,0x0000000b,0xfffff813,0x346b213b,0xf35d5fbf,0x06824495,0xd08bc600,0x00000000,
		0x80c00000,0x0000000b,0xfffffc3e,0x8b065d90,0xaa2ad831,0x878a16b4,0xccf0a080,0x00000000,
		0x04000100,0x40000020,0x00083600,0x00010000,0xf0000000,0x08000780,0x00000080,0x80000300,
		0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20043584,0xb0560280,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x00007fff,0x80000000,0x00000000,
		0x82c00000,0x00000032,0xaac3584b,0x05602800,0x00000000,0x60040000,0x00000000,0x88000001,
		0x03900004,0xd0da1a00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x02240048,0x69090080,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00c28008,0x6a003306,0x14004250,0x019830a0,0x020a800c,0xc10580b0,0xd8001e00,0x00000000,
		0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20040582,0xb0961a81,0x3027fcff,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000007,0x80000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x00000000,0x00000000,0x00000000,0x00010000,0xf0000000,0x08000780,0x00000080,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x41bc0201,
		0x80860000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
		0x80840000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
		0x80820000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
		0x80800000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4020081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x403c101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4050141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x406c0c1e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x80000022,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80199980,0x00000000,
		0x82c00000,0x00000019,0x99c33847,0x04e01800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043384,0x704e0180,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00555500,0x00000000,
		0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e01,0x8000001a,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x80000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x80000014,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x80000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000f,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000c,
		0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x804ccc80,0x80000000,
		0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
		0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
		0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000001,
		0x810c0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00000000,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000101,
		0x82c00000,0x0000012a,0xaac3584b,0x05602c30,0x84104200,0x0000079b,0x00000000,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x401c081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4028101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4038141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40440c1e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007ad,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560280,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007b0,
		0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560280,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000033,0x3343584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007b2,
		0x0085c3a8,0x6a000f04,0x2e154250,0x00782170,0x6a0a8003,0xc10b8150,0x14001e00,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000005d,0xddc3b857,0x06e05800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3b85,0x706e0581,0x800007b7,
		0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007bc,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4098101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4094141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40900c1e,
		0x80860000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
		0x80840000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
		0x80820000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
		0x80800000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x80000301,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000109,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000001,0x8000000c,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000109,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffd55500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3584,0xb0560281,0x80000006,
		0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80555500,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000109,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560281,0x80000001,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001101,
		0x82c00000,0x000000aa,0xaac3584b,0x05602c30,0x84104200,0x0000079c,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001100,
		0x03900004,0xb0d6185c,0x80002584,0xb082e400,0x012c1582,0x17200009,0x602c0080,0x00000000,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x90000101,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001100,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079c,0x80000000,0x00000000,
		0x03900004,0xb0d6185c,0x80002584,0xb082e400,0x012c1582,0x17200009,0x602c0081,0x2407fdff,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007e7,
		0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007ec,
		0x80860000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
		0x80840000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
		0x80820000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
		0x80800000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x80000301,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4034141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40500c1e,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffaaaa80,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3a85,0x506a0501,0x80000019,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x00000000,
		0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043a85,0x506a0501,0x80000014,
		0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffaaaa80,0x80000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000f,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000c,
		0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffcccc80,0x80000000,
		0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
		0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
		0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
		0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
		0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x810c0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00000000,0x00000000,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
		0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
		0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000101,
		0x82c00000,0x0000012a,0xaac3584b,0x05602c30,0x84104200,0x0000079b,0x00000000,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4018141e,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40240c1e,
		0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000033,0x3343584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007ba,
		0x00834358,0x74000f04,0x1a12c2a0,0x007820d0,0x560d0003,0xc1068150,0x14001e00,0x80000300,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x00000033,0x3343684d,0x05a03000,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007c0,
		0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
		0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
		0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007c5,
		0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000

};

const unsigned int sha1_code_buf[] =
{
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00088880, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00111100, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00199980, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0180, 0x80000100,
		0x04000140, 0x00000060, 0x000a0000, 0x00030000, 0x50000000, 0x58000280, 0x00000f00, 0x80000200,
		0x00c20008, 0x26003304, 0x12104008, 0x452c3080, 0x0211800c, 0xc1048610, 0x42194b00, 0x00000000,
		0x01481052, 0x0a425fca, 0x408690d2, 0x1afe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00c20008, 0x60003304, 0x12004218, 0x052c3080, 0x0201800c, 0xc1048210, 0xc6094b00, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00005204, 0x14829097, 0xf29021a4, 0x3486bf80, 0x00000000,
		0x00c20008, 0x20003304, 0x1210c018, 0x472c3080, 0x0210000c, 0xc1048630, 0x4619cb00, 0x00000000,
		0x01483052, 0x0a425fca, 0x418690d2, 0x1afe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00c20008, 0x62003304, 0x1200c228, 0x072c3080, 0x0200000c, 0xc1048230, 0xca09cb00, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x0000520c, 0x14829097, 0xf29061a4, 0x3486bf80, 0x00000000,
		0x00c20008, 0x22003304, 0x12114028, 0x412c3080, 0x0210800c, 0xc1048650, 0x4a184b00, 0x00000000,
		0x01485052, 0x0a425fca, 0x428690d2, 0x1afe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00c20008, 0x64003304, 0x12014238, 0x012c3080, 0x0200800c, 0xc1048250, 0xce084b00, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00005214, 0x14829097, 0xf290a1a4, 0x3486bf80, 0x00000000,
		0x00c20008, 0x24003304, 0x1211c038, 0x432c3080, 0x0211000c, 0xc1048670, 0x4e18cb00, 0x00000000,
		0x01487052, 0x0a425fca, 0x438690d2, 0x1afe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00c20008, 0x66003304, 0x1201c208, 0x032c3080, 0x0201000c, 0xc1048270, 0xc208cb00, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x0000521c, 0x14829097, 0xf290e1a4, 0x3486bf80, 0x88000001,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0181, 0x3013edff,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80000000, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80888880, 0x00000000,
		0x04000096, 0xa09e6660, 0x0004ddb3, 0xd7430000, 0x28f1bbcd, 0xc8000165, 0x3160eb00, 0x00000000,
		0x04000180, 0x00000020, 0x000c0000, 0x00010000, 0x60000000, 0x08000300, 0x00000000, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00010100,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01946230, 0x70c61943, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01946230, 0x70c61942, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01946230, 0x70c61941, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01946230, 0x70c61940, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180001, 0x3013f4ff,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00010100,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c61143, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c61142, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c61141, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c61140, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180001, 0x3027f4ff,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00010100,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01d06230, 0x70c60943, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01d06230, 0x70c60942, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01d06230, 0x70c60941, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x01d06230, 0x70c60940, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180001, 0x303bf4ff,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00010100,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c60143, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c60142, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c60141, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180000, 0x00000000,
		0x014870c2, 0x18415fc4, 0x0e104108, 0x012c6230, 0x70c60140, 0x4290e104, 0x2080bf80, 0x00000000,
		0x018800c0, 0x086c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x0188c043, 0x384704cc, 0x40021842, 0x60006200, 0x100e0b00, 0x03100082, 0x10180001, 0x304ff4ff,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80111100, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80999980, 0x00000000,
		0x01880043, 0x0864000c, 0x40021042, 0x20006200, 0x10420900, 0x03100080, 0x10080000, 0x00000000,
		0x018800c3, 0x18660000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x81460000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x28043084, 0x10420000, 0x00000000,
		0x81460000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x280c3186, 0x30c61880, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3084, 0x10420000, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3186, 0x30c61880, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x8000079c,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};


const unsigned int aes192_code_buf[]=
{
// aes encrytion without jump instruction, decryption with jump instruction
// support ECB/CBC/CTR/CFB/OFB mode,
// inter-word & inside-word are big-endian
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x50d8001f,
0x80c00000,0x0000000b,0xffff801c,0x62d2b79b,0x3598796a,0xbdb53b84,0xbe293180,0x00000000,
0x80c00000,0x0000000b,0xffff847d,0xbb6bd5f9,0xebc0ff4f,0x15d1b3a0,0x00df9800,0x00000000,
0x80c00000,0x0000000b,0xffff8843,0xf87fa397,0xaccdfd41,0x3e9ce4f1,0xc13e6500,0x00000000,
0x80c00000,0x0000000b,0xffff8c65,0xe074b96f,0x52624e22,0x57a1d147,0x6a1a5680,0x00000000,
0x80c00000,0x0000000b,0xffff901e,0xe611fbe1,0x1fd31b19,0x134a49bd,0xfeaa5b80,0x00000000,
0x80c00000,0x0000000b,0xffff9427,0x0ae198fd,0x6c213885,0xf8caf2a6,0x52f71a00,0x00000000,
0x80c00000,0x0000000b,0xffff9859,0x4d1202ec,0xcb140c33,0x61d09197,0x63840200,0x00000000,
0x80c00000,0x0000000b,0xffff9c12,0xbae8d945,0x93b6f5a4,0xf151402d,0x893b0380,0x00000000,
0x80c00000,0x0000000b,0xffffa00b,0x504c2d34,0x37430db2,0x0d7b167c,0x41b90480,0x00000000,
0x80c00000,0x0000000b,0xffffa449,0x425b17b2,0xf1ae94e6,0x59ae6b52,0x1dea2900,0x00000000,
0x80c00000,0x0000000b,0xffffa86d,0x2ddcd8f6,0xfe7e9028,0x76a40038,0x68b62980,0x00000000,
0x80c00000,0x0000000b,0xffffac42,0x67ceac46,0xa653a52b,0x9ca35f0a,0xe5af3500,0x00000000,
0x80c00000,0x0000000b,0xffffb005,0x42e999de,0x26c62180,0x7dd5d56c,0x77c86800,0x00000000,
0x80c00000,0x0000000b,0xffffb403,0x5422cfd9,0x9e5c2802,0xbfac0172,0x7cfba280,0x00000000,
0x80c00000,0x0000000b,0xffffb801,0x7a879c1f,0xcee54947,0xc78f2016,0x51e82880,0x00000000,
0x80c00000,0x0000000b,0xffffbc35,0xe9457989,0xff808801,0x90deed57,0xdb60de00,0x00000000,
0x80c00000,0x0000000b,0xffffc075,0x0bee2233,0xcba7afa0,0xf60889c8,0x861d6680,0x00000000,
0x80c00000,0x0000000b,0xffffc439,0xb9f30cda,0x2ef83267,0x1ee7bf79,0x53cbe200,0x00000000,
0x80c00000,0x0000000b,0xffffc842,0xc41ac856,0x95739111,0x6e3a27d6,0x40cb3000,0x00000000,
0x80c00000,0x0000000b,0xffffcc37,0x6def85ba,0xaf0e6f74,0x0a1bdc7c,0xf7712300,0x00000000,
0x80c00000,0x0000000b,0xffffd044,0xae629214,0x830ea4b8,0x850d1d78,0x9923f000,0x00000000,
0x80c00000,0x0000000b,0xffffd40d,0xbcdf720c,0x4ad54887,0x3131565b,0xe9b7e100,0x00000000,
0x80c00000,0x0000000b,0xffffd810,0x54bca769,0x6ae346a5,0xb69f1bab,0x647e7380,0x00000000,
0x80c00000,0x0000000b,0xffffdc7a,0x042d5766,0xbd3c32ff,0x75607a6d,0xab4d3600,0x00000000,
0x80c00000,0x0000000b,0xffffe018,0xe363da03,0xd3440e19,0x975412ee,0xbc0fdd00,0x00000000,
0x80c00000,0x0000000b,0xffffe42f,0xc57645c0,0x5e93a5ac,0x8f883a09,0x6ed8f400,0x00000000,
0x80c00000,0x0000000b,0xffffe806,0x87257b5a,0x818ca454,0xb33fdaa8,0x9f303800,0x00000000,
0x80c00000,0x0000000b,0xffffec77,0xcf4e0ee4,0xe0c9c34f,0xdcbd2bf2,0x9a96b080,0x00000000,
0x80c00000,0x0000000b,0xfffff058,0x4a7ac715,0x6cd734a6,0x889dcc70,0x7c507080,0x00000000,
0x80c00000,0x0000000b,0xfffff430,0xefcc9429,0xaac1e71e,0x74ddc3f5,0x8f644d80,0x00000000,
0x80c00000,0x0000000b,0xfffff813,0x346b213b,0xf35d5fbf,0x06824495,0xd08bc600,0x00000000,
0x80c00000,0x0000000b,0xfffffc3e,0x8b065d90,0xaa2ad831,0x878a16b4,0xccf0a080,0x00000000,
0x04000100,0x40000020,0x00083600,0x00000000,0x00000000,0x00000000,0x00000000,0x80000300,
0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20043584,0xb0560280,0x80000100,
0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00bbbb80,0x00000000,
0x82c00000,0x0000003b,0xbbc3784f,0x05e03800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x00007fff,0x80000000,0x00000000,
0x82c00000,0x0000003b,0xbbc3784f,0x05e03800,0x00000000,0x00007fff,0x80000000,0x00000000,
0x82c00000,0x00000033,0x3343784f,0x05e03800,0x00000000,0x00000000,0x00000000,0x00000000,
0x82c00000,0x00000044,0x4443784f,0x05e03800,0x00000000,0x06010000,0x00000000,0x88000001,
0x03900005,0x10621a00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x02240048,0x69090080,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00c28008,0x6a003306,0x14004250,0x019830a0,0x020a800c,0xc10580b0,0xe0001e00,0x00000000,
0x00000000,0x00000000,0x00000000,0x000030e0,0x020b800c,0xc10780f0,0xd4001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x00000301,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x680c0682,0xd0160a80,0x88000101,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x6ffc2586,0xb01e0b81,0x301ff9ff,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x68040582,0xb0961a80,0x00000000,
0x82c00000,0x00000033,0x3343784f,0x05e03800,0x00000000,0x00000000,0x00000001,0x301ff7ff,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000007,0x80000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00010000,0xf0000000,0x08000780,0x00000080,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x41e00201,
0x80860000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80840000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80820000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80800000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4020081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x403c101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4050141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40700c1e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x80000023,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80199980,0x00000000,
0x82c00000,0x00000019,0x99c33847,0x04e01800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043384,0x704e0180,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00555500,0x00000000,
0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e01,0x8000001b,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x80000015,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000010,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000d,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x8000000c,
0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x804ccc80,0x80000000,
0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000001,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000101,
0x82c00000,0x0000012a,0xaac3584b,0x05602c30,0x84104200,0x0000079b,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x401c081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4028101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4038141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40440c1e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007a4,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560280,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007a7,
0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560280,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x00000033,0x3343584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007a9,
0x0085c3a8,0x6a000f04,0x2e154250,0x00782170,0x6a0a8003,0xc10b8150,0x14001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000005d,0xddc3b857,0x06e05800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3b85,0x706e0581,0x800007ae,
0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007b4,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4098101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4094141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40900c1e,
0x80860000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
0x80840000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
0x80820000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
0x80800000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x80000301,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x8000010b,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000001,0x8000000c,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x8000010b,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffd55500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3584,0xb0560281,0x80000006,
0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80555500,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x8000010b,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560281,0x80000001,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001101,
0x82c00000,0x000000aa,0xaac3584b,0x05602c30,0x84104200,0x0000079c,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001100,
0x03900004,0xb0d6185c,0x80002584,0xb082e400,0x012c1582,0x17200009,0x602c0080,0x00000000,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x90000101,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001100,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079c,0x80000000,0x00000000,
0x03900004,0xb0d6185c,0x80002584,0xb082e400,0x012c1582,0x17200009,0x602c0081,0x2407fdff,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007e7,
0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e00,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007ec,
0x80860000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80840000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80820000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80800000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x80000301,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4034141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40500c1e,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffaaaa80,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3a85,0x506a0501,0x80000019,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043a85,0x506a0501,0x80000014,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffaaaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000f,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000c,
0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffcccc80,0x80000000,
0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000101,
0x82c00000,0x0000012a,0xaac3584b,0x05602c30,0x84104200,0x0000079b,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4018141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40240c1e,
0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e00,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x00000033,0x3343584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007b2,
0x00834358,0x74000f04,0x1a12c2a0,0x007820d0,0x560d0003,0xc1068150,0x14001e00,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x00000033,0x3343684d,0x05a03000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007b8,
0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007bd,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000
};

const unsigned int aes256_code_buf[]=
{
// aes encrytion without jump instruction, decryption with jump instruction
// support ECB/CBC/CTR/CFB/OFB mode,
// inter-word & inside-word are big-endian
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x50e4001f,
0x80c00000,0x0000000b,0xffff801c,0x62d2b79b,0x3598796a,0xbdb53b84,0xbe293180,0x00000000,
0x80c00000,0x0000000b,0xffff847d,0xbb6bd5f9,0xebc0ff4f,0x15d1b3a0,0x00df9800,0x00000000,
0x80c00000,0x0000000b,0xffff8843,0xf87fa397,0xaccdfd41,0x3e9ce4f1,0xc13e6500,0x00000000,
0x80c00000,0x0000000b,0xffff8c65,0xe074b96f,0x52624e22,0x57a1d147,0x6a1a5680,0x00000000,
0x80c00000,0x0000000b,0xffff901e,0xe611fbe1,0x1fd31b19,0x134a49bd,0xfeaa5b80,0x00000000,
0x80c00000,0x0000000b,0xffff9427,0x0ae198fd,0x6c213885,0xf8caf2a6,0x52f71a00,0x00000000,
0x80c00000,0x0000000b,0xffff9859,0x4d1202ec,0xcb140c33,0x61d09197,0x63840200,0x00000000,
0x80c00000,0x0000000b,0xffff9c12,0xbae8d945,0x93b6f5a4,0xf151402d,0x893b0380,0x00000000,
0x80c00000,0x0000000b,0xffffa00b,0x504c2d34,0x37430db2,0x0d7b167c,0x41b90480,0x00000000,
0x80c00000,0x0000000b,0xffffa449,0x425b17b2,0xf1ae94e6,0x59ae6b52,0x1dea2900,0x00000000,
0x80c00000,0x0000000b,0xffffa86d,0x2ddcd8f6,0xfe7e9028,0x76a40038,0x68b62980,0x00000000,
0x80c00000,0x0000000b,0xffffac42,0x67ceac46,0xa653a52b,0x9ca35f0a,0xe5af3500,0x00000000,
0x80c00000,0x0000000b,0xffffb005,0x42e999de,0x26c62180,0x7dd5d56c,0x77c86800,0x00000000,
0x80c00000,0x0000000b,0xffffb403,0x5422cfd9,0x9e5c2802,0xbfac0172,0x7cfba280,0x00000000,
0x80c00000,0x0000000b,0xffffb801,0x7a879c1f,0xcee54947,0xc78f2016,0x51e82880,0x00000000,
0x80c00000,0x0000000b,0xffffbc35,0xe9457989,0xff808801,0x90deed57,0xdb60de00,0x00000000,
0x80c00000,0x0000000b,0xffffc075,0x0bee2233,0xcba7afa0,0xf60889c8,0x861d6680,0x00000000,
0x80c00000,0x0000000b,0xffffc439,0xb9f30cda,0x2ef83267,0x1ee7bf79,0x53cbe200,0x00000000,
0x80c00000,0x0000000b,0xffffc842,0xc41ac856,0x95739111,0x6e3a27d6,0x40cb3000,0x00000000,
0x80c00000,0x0000000b,0xffffcc37,0x6def85ba,0xaf0e6f74,0x0a1bdc7c,0xf7712300,0x00000000,
0x80c00000,0x0000000b,0xffffd044,0xae629214,0x830ea4b8,0x850d1d78,0x9923f000,0x00000000,
0x80c00000,0x0000000b,0xffffd40d,0xbcdf720c,0x4ad54887,0x3131565b,0xe9b7e100,0x00000000,
0x80c00000,0x0000000b,0xffffd810,0x54bca769,0x6ae346a5,0xb69f1bab,0x647e7380,0x00000000,
0x80c00000,0x0000000b,0xffffdc7a,0x042d5766,0xbd3c32ff,0x75607a6d,0xab4d3600,0x00000000,
0x80c00000,0x0000000b,0xffffe018,0xe363da03,0xd3440e19,0x975412ee,0xbc0fdd00,0x00000000,
0x80c00000,0x0000000b,0xffffe42f,0xc57645c0,0x5e93a5ac,0x8f883a09,0x6ed8f400,0x00000000,
0x80c00000,0x0000000b,0xffffe806,0x87257b5a,0x818ca454,0xb33fdaa8,0x9f303800,0x00000000,
0x80c00000,0x0000000b,0xffffec77,0xcf4e0ee4,0xe0c9c34f,0xdcbd2bf2,0x9a96b080,0x00000000,
0x80c00000,0x0000000b,0xfffff058,0x4a7ac715,0x6cd734a6,0x889dcc70,0x7c507080,0x00000000,
0x80c00000,0x0000000b,0xfffff430,0xefcc9429,0xaac1e71e,0x74ddc3f5,0x8f644d80,0x00000000,
0x80c00000,0x0000000b,0xfffff813,0x346b213b,0xf35d5fbf,0x06824495,0xd08bc600,0x00000000,
0x80c00000,0x0000000b,0xfffffc3e,0x8b065d90,0xaa2ad831,0x878a16b4,0xccf0a080,0x00000000,
0x04000100,0x40000020,0x00083600,0x00000000,0x00000000,0x00000000,0x00000000,0x80000300,
0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20043584,0xb0560280,0x00000000,
0x81000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00bbbb80,0x00000000,
0x82c00000,0x0000003b,0xbbc3784f,0x05e03800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x200c3784,0xf05e0380,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x00007fff,0x80000000,0x00000000,
0x82c00000,0x0000003b,0xbbc3784f,0x05e03800,0x00000000,0x00007fff,0x80000000,0x00000000,
0x82c00000,0x00000044,0x4443784f,0x05e03800,0x00000000,0x60040000,0x00000000,0x88000002,
0x03900005,0x10e21a00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x02240048,0x69090080,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00c28008,0x6a003306,0x14004250,0x019830a0,0x020a800c,0xc10580b0,0xe0001e00,0x00000000,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20040582,0xb0961a80,0x00000000,
0x03900001,0x10d40000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00c38008,0x6e003306,0x1c004270,0x019830e0,0x020b800c,0xc10780f0,0xe0001e00,0x00000000,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x200c0782,0xf09e1b81,0x302bf9ff,
0x82c00000,0x00000044,0x4443784f,0x05e03800,0x00000000,0x60040000,0x00000000,0x88000002,
0x03900005,0x10e21a00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x02240048,0x69090080,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00c28008,0x6a003306,0x14004250,0x019830a0,0x020a800c,0xc10580b0,0xe0001e00,0x00000000,
0x81400000,0x00000000,0x00000000,0x00000000,0x00000000,0x20040582,0xb0961a80,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000007,0x80000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x00000000,0x00000000,0x00000000,0x00010000,0xf0000000,0x08000780,0x00000080,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x42000201,
0x80860000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80840000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80820000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80800000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4020081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x403c101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4050141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40700c1e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x80000023,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80199980,0x00000000,
0x82c00000,0x00000019,0x99c33847,0x04e01800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043384,0x704e0180,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000002,0x00555500,0x00000000,
0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e01,0x8000001b,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x80000015,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000010,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000d,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x8000000c,
0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x804ccc80,0x80000000,
0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000001,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000101,
0x82c00000,0x0000012a,0xaac3584b,0x05602c30,0x84104200,0x0000079b,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x401c081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4028101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4038141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40440c1e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x8000079c,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560280,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x8000079f,
0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560280,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x00000033,0x3343584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007a1,
0x0085c3a8,0x6a000f04,0x2e154250,0x00782170,0x6a0a8003,0xc10b8150,0x14001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000005d,0xddc3b857,0x06e05800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3b85,0x706e0581,0x800007a6,
0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007ac,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4098101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4094141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40900c1e,
0x80860000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
0x80840000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
0x80820000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x00000000,
0x80800000,0x00000000,0x00000007,0x05868484,0x87058686,0x84870585,0x86848700,0x80000301,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x8000010d,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000001,0x8000000c,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x8000010d,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffd55500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3584,0xb0560281,0x80000006,
0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x80555500,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x63ff0101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x002aaa80,0x8000010d,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043584,0xb0560281,0x80000001,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001101,
0x82c00000,0x000000aa,0xaac3584b,0x05602c30,0x84104200,0x0000079c,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001100,
0x03900004,0xb0d6185c,0x80002584,0xb082e400,0x012c1582,0x17200009,0x602c0080,0x00000000,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x90000101,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00001100,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079c,0x80000000,0x00000000,
0x03900004,0xb0d6185c,0x80002584,0xb082e400,0x012c1582,0x17200009,0x602c0081,0x2407fdff,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4010081e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007e7,
0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e00,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007ec,
0x80860000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80840000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80820000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x00000000,
0x80800000,0x00000000,0x00000001,0x01808080,0x81018080,0x80810181,0x80808100,0x80000301,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4034141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40500c1e,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffaaaa80,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x3ffc3a85,0x506a0501,0x80000019,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x810a0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0x802aaa80,0x00000000,
0x81420000,0x00000000,0x00000000,0x00000000,0x00000000,0x38043a85,0x506a0501,0x80000014,
0x81060000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffaaaa80,0x80000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000f,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x80000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x8000000c,
0x81080000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000003,0xffcccc80,0x80000000,
0x82c00000,0x0000004c,0xccc39853,0x06604800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000001,0x80000006,
0x82020000,0x00000000,0x04cccc39,0x85306604,0xc1f83f07,0xe0780000,0x00000000,0x00000000,
0x82020000,0x00000000,0x02aaac39,0x85306604,0xc1f83f07,0xe0f80000,0x00000000,0x80000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000101,
0x81020000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00555500,0x00000000,
0x82c00000,0x00000055,0x5543a855,0x06a05000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x0000079b,0x00000000,0x88000001,
0x02000161,0xa8001bd0,0x000b0940,0x00dc8000,0x582a0006,0xd40002c0,0x50003600,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000100,
0x03900002,0xb0d6181c,0x80001584,0xb080e400,0x00ac1582,0x07200005,0x602c0000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000004,0x00000101,
0x82c00000,0x0000012a,0xaac3584b,0x05602c30,0x84104200,0x0000079b,0x00000000,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x400c101e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x4018141e,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x40240c1e,
0x0082c358,0x74000f04,0x1612c2a0,0x007820b0,0x560d0003,0xc1058150,0x14001e00,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x00000033,0x3343584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007aa,
0x00834358,0x74000f04,0x1a12c2a0,0x007820d0,0x560d0003,0xc1068150,0x14001e00,0x80000300,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x00000033,0x3343684d,0x05a03000,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3684,0xd05a0301,0x800007b0,
0x0082c3a8,0x6a000f04,0x16154250,0x007820b0,0x6a0a8003,0xc1058150,0x14001e00,0x00000000,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000001,0x60000202,
0x82c00000,0x0000002a,0xaac3584b,0x05602800,0x00000000,0x7fffffff,0x80000000,0x00000000,
0x81440000,0x00000000,0x00000000,0x00000000,0x00000000,0x001c3584,0xb0560281,0x800007b5,
0x80000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000
};

const unsigned int sha256_code_buf[]=
{
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00088880, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00111100, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00199980, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0180, 0x00000000,
		0x04000140, 0x000001e0, 0x000a0000, 0x00250000, 0x50000001, 0x18000280, 0x00000980, 0x00000000,
		0x04000180, 0x00000020, 0x000c0000, 0x00010000, 0x60000000, 0x08000300, 0x00000000, 0x80000100,
		0x01409082, 0x104357ca, 0x04841082, 0x12be5024, 0x13827055, 0xf281209c, 0x1380af80, 0x00000000,
		0x01007841, 0x0d8000c8, 0x03c1384c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x908a1800, 0x00000000, 0x00000000, 0x00000000,
		0x0188c042, 0x48690500, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01409042, 0x084357ca, 0x04821042, 0x12be5024, 0x03807055, 0xf281201c, 0x0380af80, 0x00000000,
		0x01007821, 0x0d8000c8, 0x03c0384c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x904a1000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x0000000c, 0x46021243, 0x48280000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01409002, 0x004357ca, 0x04801002, 0x12be5024, 0x30861055, 0xf2812184, 0x3080af80, 0x00000000,
		0x01007801, 0x0d8000c8, 0x03c3084c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x900a0800, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00006230, 0x10921a41, 0x40000000, 0x00000000, 0x00000000,
		0x014090c6, 0x18c357ca, 0x048630c6, 0x12be5024, 0x20841055, 0xf2812104, 0x2080af80, 0x00000000,
		0x01007863, 0x0d8000c8, 0x03c2084c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90ce0000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03118084, 0x90d20a00, 0x00000000,
		0x01409086, 0x10c357ca, 0x04843086, 0x12be5024, 0x10821055, 0xf2812084, 0x1080af80, 0x00000000,
		0x01007843, 0x0d8000c8, 0x03c1084c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90c61180, 0x00000000, 0x00000000, 0x00000000,
		0x0188c0c2, 0x48690500, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01409046, 0x08c357ca, 0x04823046, 0x12be5024, 0x00801055, 0xf2812004, 0x0080af80, 0x00000000,
		0x01007823, 0x0d8000c8, 0x03c0084c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90860980, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x0000000c, 0x46061243, 0x48280000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01409006, 0x00c357ca, 0x04803006, 0x12be5024, 0x31863055, 0xf281218c, 0x3180af80, 0x00000000,
		0x01007803, 0x0d8000c8, 0x03c3184c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90460180, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00006230, 0x30921a41, 0x40000000, 0x00000000, 0x00000000,
		0x014090ca, 0x194357ca, 0x048650ca, 0x12be5024, 0x21843055, 0xf281210c, 0x2180af80, 0x00000000,
		0x01007865, 0x0d8000c8, 0x03c2184c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90061800, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03118184, 0x90d20a00, 0x00000000,
		0x0140908a, 0x114357ca, 0x0484508a, 0x12be5024, 0x11823055, 0xf281208c, 0x1180af80, 0x00000000,
		0x01007845, 0x0d8000c8, 0x03c1184c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90ca1000, 0x00000000, 0x00000000, 0x00000000,
		0x0188c142, 0x48690500, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0140904a, 0x094357ca, 0x0482504a, 0x12be5024, 0x01803055, 0xf281200c, 0x0180af80, 0x00000000,
		0x01007825, 0x0d8000c8, 0x03c0184c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x908a0800, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x0000000c, 0x460a1243, 0x48280000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0140900a, 0x014357ca, 0x0480500a, 0x12be5024, 0x32865055, 0xf2812194, 0x3280af80, 0x00000000,
		0x01007805, 0x0d8000c8, 0x03c3284c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x904a0000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00006230, 0x50921a41, 0x40000000, 0x00000000, 0x00000000,
		0x014090ce, 0x19c357ca, 0x048670ce, 0x12be5024, 0x22845055, 0xf2812114, 0x2280af80, 0x00000000,
		0x01007867, 0x0d8000c8, 0x03c2284c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x900a1880, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03118284, 0x90d20a00, 0x00000000,
		0x0140908e, 0x11c357ca, 0x0484708e, 0x12be5024, 0x12825055, 0xf2812094, 0x1280af80, 0x00000000,
		0x01007847, 0x0d8000c8, 0x03c1284c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x90ce1080, 0x00000000, 0x00000000, 0x00000000,
		0x0188c1c2, 0x48690500, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0140904e, 0x09c357ca, 0x0482704e, 0x12be5024, 0x02805055, 0xf2812014, 0x0280af80, 0x00000000,
		0x01007827, 0x0d8000c8, 0x03c0284c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x908e0880, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x0000000c, 0x460e1243, 0x48280000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0140900e, 0x01c357ca, 0x0480700e, 0x12be5024, 0x33867055, 0xf281219c, 0x3380af80, 0x00000000,
		0x01007807, 0x0d8000c8, 0x03c3384c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x904e0080, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00006230, 0x70921a41, 0x40000000, 0x00000000, 0x00000000,
		0x014090c2, 0x184357ca, 0x048610c2, 0x12be5024, 0x23847055, 0xf281211c, 0x2380af80, 0x00000000,
		0x01007861, 0x0d8000c8, 0x03c2384c, 0x00140000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00824248, 0x690de584, 0x12024148, 0x4f2c6200, 0x900e1900, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03118384, 0x90d20a00, 0x88000001,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0181, 0x300bbdff,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80000000, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80888880, 0x00000000,
		0x04000140, 0x000000a0, 0x000a0000, 0x001b0000, 0x50000001, 0x68000280, 0x00000300, 0x00000000,
		0x04000180, 0x000002e0, 0x000c0000, 0x00330000, 0x60000000, 0x08000300, 0x00000000, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00010100,
		0x81040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x003bbb80, 0x00000000,
		0x014050c6, 0x18c057ca, 0x028630c6, 0x1b3e5014, 0x31863099, 0xf1028630, 0x8608e500, 0x00000000,
		0x00814328, 0x4504a58c, 0x460a1a40, 0x286e2050, 0xc210410e, 0x8280a184, 0x3086af80, 0x00000000,
		0x014070c2, 0x184257ca, 0x038610c2, 0x0abe6230, 0x70ca00c2, 0x23100182, 0xd0440000, 0x00000000,
		0x00814338, 0x0508e58c, 0x40060b43, 0x10006200, 0x305a1080, 0x00000000, 0x00000000, 0x00000000,
		0x018800c1, 0x3800000c, 0x40020b43, 0x00006200, 0x105a1000, 0x03100082, 0xd0400000, 0x00000000,
		0x018801c1, 0x2864000c, 0x40020b43, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01880043, 0x38260000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014050c6, 0x18c057ca, 0x028630c6, 0x1b3e5014, 0x31863099, 0xf1028630, 0x8608e500, 0x00000000,
		0x00814328, 0x4504a58c, 0x460a1240, 0x284e2050, 0xc210410e, 0x8280a184, 0x3086af80, 0x00000000,
		0x014070c2, 0x184257ca, 0x038610c2, 0x0abe6230, 0x70ca00c2, 0x23100182, 0xd0440000, 0x00000000,
		0x00814338, 0x0508e58c, 0x40060b43, 0x10006200, 0x305a1080, 0x00000000, 0x00000000, 0x00000000,
		0x018800c1, 0x3800000c, 0x40020b43, 0x00006200, 0x105a1000, 0x03100082, 0xd0400000, 0x00000000,
		0x018801c1, 0x2864000c, 0x40020b43, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01880043, 0x38260000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014050c6, 0x18c057ca, 0x028630c6, 0x1b3e5014, 0x31863099, 0xf1028630, 0x8608e500, 0x00000000,
		0x00814328, 0x4504a58c, 0x460a0a40, 0x282e2050, 0xc210410e, 0x8280a184, 0x3086af80, 0x00000000,
		0x014070c2, 0x184257ca, 0x038610c2, 0x0abe6230, 0x70ca00c2, 0x23100182, 0xd0440000, 0x00000000,
		0x00814338, 0x0508e58c, 0x40060b43, 0x10006200, 0x305a1080, 0x00000000, 0x00000000, 0x00000000,
		0x018800c1, 0x3800000c, 0x40020b43, 0x00006200, 0x105a1000, 0x03100082, 0xd0400000, 0x00000000,
		0x018801c1, 0x2864000c, 0x40020b43, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01880043, 0x38260000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014050c6, 0x18c057ca, 0x028630c6, 0x1b3e5014, 0x31863099, 0xf1028630, 0x8608e500, 0x00000000,
		0x00814328, 0x4504a58c, 0x460a0240, 0x280e2050, 0xc210410e, 0x8280a184, 0x3086af80, 0x00000000,
		0x014070c2, 0x184257ca, 0x038610c2, 0x0abe6230, 0x70ca00c2, 0x23100182, 0xd0440000, 0x00000000,
		0x00814338, 0x0508e58c, 0x40060b43, 0x10006200, 0x305a1080, 0x00000000, 0x00000000, 0x00000000,
		0x018800c1, 0x3800000c, 0x40020b43, 0x00006200, 0x105a1000, 0x03100082, 0xd0400000, 0x00000000,
		0x018801c1, 0x2864000c, 0x40020b43, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x01880043, 0x38260000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x303fe3ff,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80111100, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80999980, 0x00000000,
		0x01880043, 0x0864000c, 0x40021042, 0x20006200, 0x10420900, 0x03100080, 0x10080000, 0x00000000,
		0x018800c3, 0x1866000c, 0x400610c2, 0x30006200, 0x30460980, 0x03100180, 0x300c0000, 0x00000000,
		0x81468000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00043084, 0x10420000, 0x00000000,
		0x81468000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000c3184, 0x30460080, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3084, 0x10420000, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3184, 0x30460080, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x80000780,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};

const unsigned int sha512_code_buf[]=
{
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x63ff0101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00088880, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00111100, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00199980, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00222200, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002aaa80, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00333300, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x003bbb80, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0180, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80243484, 0x90520200, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x802c3584, 0xb0560280, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80343684, 0xd05a0300, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x803c3784, 0xf05e0380, 0x80000100,
		0x04000280, 0x00000060, 0x00140000, 0x00270000, 0xa0000001, 0xc8000500, 0x00000700, 0x80000200,
		0x040002c0, 0x00000220, 0x00160000, 0x00070000, 0xb0000001, 0xe8000580, 0x00000900, 0x00000000,
		0x04000300, 0x000001e0, 0x00180000, 0x000d0000, 0xc0000001, 0x98000600, 0x00000b80, 0x00000000,
		0x040003c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000,
		0x014110de, 0x13c2afca, 0x0884f0de, 0x157e5244, 0x2786f0af, 0xf29221bc, 0x27857f80, 0x00000000,
		0x0104986f, 0x0fe167c8, 0x24c2786f, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00000438, 0x8510fe1f, 0xc3084104, 0x20000000, 0x00000000, 0x00000000,
		0x01411042, 0x0043afca, 0x08801042, 0x1d7e5044, 0x108010ef, 0xf2822004, 0x10877f80, 0x00000000,
		0x01049821, 0x0fe1e7c8, 0x24c00821, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00000438, 0x8510fe1f, 0xc3084104, 0x20000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00000414, 0x8090fe1f, 0xc3084104, 0x20000000, 0x00000000, 0x00000000,
		0x0141105e, 0x03c2afca, 0x0880f05e, 0x157e5244, 0x0782f0af, 0xf29220bc, 0x07857f80, 0x00000000,
		0x0104982f, 0x0fe167c8, 0x24c0782f, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0000043f, 0x87f0e214, 0x43084104, 0x20000000, 0x00000000, 0x00000000,
		0x014110c6, 0x10c3afca, 0x088430c6, 0x1d7e5044, 0x318430ef, 0xf282210c, 0x31877f80, 0x00000000,
		0x01049863, 0x0fe1e7c8, 0x24c21863, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0000043f, 0x87f0e214, 0x43084104, 0x20000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0000043f, 0x87f0d612, 0xc3084104, 0x20000000, 0x00000000, 0x00000000,
		0x014110c2, 0x1042afca, 0x088410c2, 0x157e5244, 0x208610af, 0xf2922184, 0x20857f80, 0x00000000,
		0x01049861, 0x0fe167c8, 0x24c20861, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c38, 0x8510fe1f, 0xc3184304, 0x60080000, 0x00000000, 0x00000000,
		0x01411046, 0x00c3afca, 0x08803046, 0x1d7e5044, 0x118030ef, 0xf282200c, 0x11877f80, 0x00000000,
		0x01049823, 0x0fe1e7c8, 0x24c01823, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c38, 0x8510fe1f, 0xc3184304, 0x60080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c15, 0x80b0fe1f, 0xc3184304, 0x60080000, 0x00000000, 0x00000000,
		0x01411042, 0x0042afca, 0x08801042, 0x157e5244, 0x008210af, 0xf2922084, 0x00857f80, 0x00000000,
		0x01049821, 0x0fe167c8, 0x24c00821, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0e214, 0x43184304, 0x60080000, 0x00000000, 0x00000000,
		0x014110ca, 0x1143afca, 0x088450ca, 0x1d7e5044, 0x328450ef, 0xf2822114, 0x32877f80, 0x00000000,
		0x01049865, 0x0fe1e7c8, 0x24c22865, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0e214, 0x43184304, 0x60080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0da13, 0x43184304, 0x60080000, 0x00000000, 0x00000000,
		0x014110c6, 0x10c2afca, 0x088430c6, 0x157e5244, 0x218630af, 0xf292218c, 0x21857f80, 0x00000000,
		0x01049863, 0x0fe167c8, 0x24c21863, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01111438, 0x8510fe1f, 0xc3284504, 0xa0100000, 0x00000000, 0x00000000,
		0x0141104a, 0x0143afca, 0x0880504a, 0x1d7e5044, 0x128050ef, 0xf2822014, 0x12877f80, 0x00000000,
		0x01049825, 0x0fe1e7c8, 0x24c02825, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01111438, 0x8510fe1f, 0xc3284504, 0xa0100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01111416, 0x80d0fe1f, 0xc3284504, 0xa0100000, 0x00000000, 0x00000000,
		0x01411046, 0x00c2afca, 0x08803046, 0x157e5244, 0x018230af, 0xf292208c, 0x01857f80, 0x00000000,
		0x01049823, 0x0fe167c8, 0x24c01823, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0111143f, 0x87f0e214, 0x43284504, 0xa0100000, 0x00000000, 0x00000000,
		0x014110ce, 0x11c3afca, 0x088470ce, 0x1d7e5044, 0x338470ef, 0xf282211c, 0x33877f80, 0x00000000,
		0x01049867, 0x0fe1e7c8, 0x24c23867, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0111143f, 0x87f0e214, 0x43284504, 0xa0100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0111143f, 0x87f0de13, 0xc3284504, 0xa0100000, 0x00000000, 0x00000000,
		0x014110ca, 0x1142afca, 0x088450ca, 0x157e5244, 0x228650af, 0xf2922194, 0x22857f80, 0x00000000,
		0x01049865, 0x0fe167c8, 0x24c22865, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c38, 0x8510fe1f, 0xc3384704, 0xe0180000, 0x00000000, 0x00000000,
		0x0141104e, 0x01c3afca, 0x0880704e, 0x1d7e5044, 0x138070ef, 0xf282201c, 0x13877f80, 0x00000000,
		0x01049827, 0x0fe1e7c8, 0x24c03827, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c38, 0x8510fe1f, 0xc3384704, 0xe0180000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c17, 0x80f0fe1f, 0xc3384704, 0xe0180000, 0x00000000, 0x00000000,
		0x0141104a, 0x0142afca, 0x0880504a, 0x157e5244, 0x028250af, 0xf2922094, 0x02857f80, 0x00000000,
		0x01049825, 0x0fe167c8, 0x24c02825, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0e214, 0x43384704, 0xe0180000, 0x00000000, 0x00000000,
		0x014110d2, 0x1243afca, 0x088490d2, 0x1d7e5044, 0x348490ef, 0xf2822124, 0x34877f80, 0x00000000,
		0x01049869, 0x0fe1e7c8, 0x24c24869, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0e214, 0x43384704, 0xe0180000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0c210, 0x43384704, 0xe0180000, 0x00000000, 0x00000000,
		0x014110ce, 0x11c2afca, 0x088470ce, 0x157e5244, 0x238670af, 0xf292219c, 0x23857f80, 0x00000000,
		0x01049867, 0x0fe167c8, 0x24c23867, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02222438, 0x8510fe1f, 0xc3484905, 0x20200000, 0x00000000, 0x00000000,
		0x01411052, 0x0243afca, 0x08809052, 0x1d7e5044, 0x148090ef, 0xf2822024, 0x14877f80, 0x00000000,
		0x01049829, 0x0fe1e7c8, 0x24c04829, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02222438, 0x8510fe1f, 0xc3484905, 0x20200000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02222410, 0x8010fe1f, 0xc3484905, 0x20200000, 0x00000000, 0x00000000,
		0x0141104e, 0x01c2afca, 0x0880704e, 0x157e5244, 0x038270af, 0xf292209c, 0x03857f80, 0x00000000,
		0x01049827, 0x0fe167c8, 0x24c03827, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0222243f, 0x87f0e214, 0x43484905, 0x20200000, 0x00000000, 0x00000000,
		0x014110d6, 0x12c3afca, 0x0884b0d6, 0x1d7e5044, 0x3584b0ef, 0xf282212c, 0x35877f80, 0x00000000,
		0x0104986b, 0x0fe1e7c8, 0x24c2586b, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0222243f, 0x87f0e214, 0x43484905, 0x20200000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0222243f, 0x87f0c610, 0xc3484905, 0x20200000, 0x00000000, 0x00000000,
		0x014110d2, 0x1242afca, 0x088490d2, 0x157e5244, 0x248690af, 0xf29221a4, 0x24857f80, 0x00000000,
		0x01049869, 0x0fe167c8, 0x24c24869, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac38, 0x8510fe1f, 0xc3584b05, 0x60280000, 0x00000000, 0x00000000,
		0x01411056, 0x02c3afca, 0x0880b056, 0x1d7e5044, 0x1580b0ef, 0xf282202c, 0x15877f80, 0x00000000,
		0x0104982b, 0x0fe1e7c8, 0x24c0582b, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac38, 0x8510fe1f, 0xc3584b05, 0x60280000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac11, 0x8030fe1f, 0xc3584b05, 0x60280000, 0x00000000, 0x00000000,
		0x01411052, 0x0242afca, 0x08809052, 0x157e5244, 0x048290af, 0xf29220a4, 0x04857f80, 0x00000000,
		0x01049829, 0x0fe167c8, 0x24c04829, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac3f, 0x87f0e214, 0x43584b05, 0x60280000, 0x00000000, 0x00000000,
		0x014110da, 0x1343afca, 0x0884d0da, 0x1d7e5044, 0x3684d0ef, 0xf2822134, 0x36877f80, 0x00000000,
		0x0104986d, 0x0fe1e7c8, 0x24c2686d, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac3f, 0x87f0e214, 0x43584b05, 0x60280000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac3f, 0x87f0ca11, 0x43584b05, 0x60280000, 0x00000000, 0x00000000,
		0x014110d6, 0x12c2afca, 0x0884b0d6, 0x157e5244, 0x2586b0af, 0xf29221ac, 0x25857f80, 0x00000000,
		0x0104986b, 0x0fe167c8, 0x24c2586b, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03333438, 0x8510fe1f, 0xc3684d05, 0xa0300000, 0x00000000, 0x00000000,
		0x0141105a, 0x0343afca, 0x0880d05a, 0x1d7e5044, 0x1680d0ef, 0xf2822034, 0x16877f80, 0x00000000,
		0x0104982d, 0x0fe1e7c8, 0x24c0682d, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03333438, 0x8510fe1f, 0xc3684d05, 0xa0300000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03333412, 0x8050fe1f, 0xc3684d05, 0xa0300000, 0x00000000, 0x00000000,
		0x01411056, 0x02c2afca, 0x0880b056, 0x157e5244, 0x0582b0af, 0xf29220ac, 0x05857f80, 0x00000000,
		0x0104982b, 0x0fe167c8, 0x24c0582b, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0333343f, 0x87f0e214, 0x43684d05, 0xa0300000, 0x00000000, 0x00000000,
		0x014110de, 0x13c3afca, 0x0884f0de, 0x1d7e5044, 0x3784f0ef, 0xf282213c, 0x37877f80, 0x00000000,
		0x0104986f, 0x0fe1e7c8, 0x24c2786f, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0333343f, 0x87f0e214, 0x43684d05, 0xa0300000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0333343f, 0x87f0ce11, 0xc3684d05, 0xa0300000, 0x00000000, 0x00000000,
		0x014110da, 0x1342afca, 0x0884d0da, 0x157e5244, 0x2686d0af, 0xf29221b4, 0x26857f80, 0x00000000,
		0x0104986d, 0x0fe167c8, 0x24c2686d, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03bbbc38, 0x8510fe1f, 0xc3784f05, 0xe0380000, 0x00000000, 0x00000000,
		0x0141105e, 0x03c3afca, 0x0880f05e, 0x1d7e5044, 0x1780f0ef, 0xf282203c, 0x17877f80, 0x00000000,
		0x0104982f, 0x0fe1e7c8, 0x24c0782f, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03bbbc38, 0x8510fe1f, 0xc3784f05, 0xe0380000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03bbbc13, 0x8070fe1f, 0xc3784f05, 0xe0380000, 0x00000000, 0x00000000,
		0x0141105a, 0x0342afca, 0x0880d05a, 0x157e5244, 0x0682d0af, 0xf29220b4, 0x06857f80, 0x00000000,
		0x0104982d, 0x0fe167c8, 0x24c0682d, 0x0b3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03bbbc3f, 0x87f0e214, 0x43784f05, 0xe0380000, 0x00000000, 0x00000000,
		0x014110c2, 0x1043afca, 0x088410c2, 0x1d7e5044, 0x308410ef, 0xf2822104, 0x30877f80, 0x00000000,
		0x01049861, 0x0fe1e7c8, 0x24c20861, 0x0f3e2130, 0x621c0003, 0xc1098110, 0xa0001e00, 0x00000000,
		0x00844198, 0x72000f04, 0x2204c290, 0x00780000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03bbbc3f, 0x87f0e214, 0x43784f05, 0xe0380000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x03bbbc3f, 0x87f0d212, 0x43784f05, 0xe0380000, 0x00000000, 0x88000002,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0180, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80243484, 0x90520200, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x802c3584, 0xb0560280, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80343684, 0xd05a0300, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x803c3784, 0xf05e0381, 0x301b69ff,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80000000, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80888880, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x81111100, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x81999980, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00014100,
		0x81000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00333300, 0x00000000,
		0x0140f0ca, 0x1140afca, 0x078450ca, 0x057e503c, 0x3284502f, 0xf281e114, 0x32817f80, 0x00000000,
		0x0149108a, 0x1940cfca, 0x4886508a, 0x067e2110, 0x5e1b8003, 0xc10880f0, 0x9c001e00, 0x00000000,
		0x0140f0c2, 0x1041afca, 0x078410c2, 0x0d7e523c, 0x2086106f, 0xf291e184, 0x20837f80, 0x00000000,
		0x01493082, 0x1841cfca, 0x49861082, 0x0e7e2130, 0x5e1b8003, 0xc10980f0, 0x9c001e00, 0x00000000,
		0x0083c188, 0x70000f04, 0x1e044280, 0x007820f0, 0x661c8003, 0xc1078130, 0xa4001e00, 0x00000000,
		0x82000000, 0x00000000, 0x02aaac36, 0x84d05a03, 0x43584b05, 0x60280000, 0x00000000, 0x00000000,
		0x00834328, 0x250cf284, 0x1a114028, 0x479420d0, 0xc208431e, 0x81068410, 0x0210f400, 0x00000000,
		0x82000000, 0x00000000, 0x04444413, 0x8070da13, 0x43584b0d, 0xe1380000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02222418, 0x81105a03, 0x43885105, 0xe0380000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0fe1f, 0xc338470c, 0xe1180000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0fe1f, 0xc1280504, 0xe0180000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0111143f, 0x87f0fe1f, 0xc328450c, 0xa1100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01111434, 0x8490fe1f, 0xc1180304, 0xa0100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0fe1f, 0xc318430c, 0x61080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0fe1f, 0xc1080104, 0x60080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0000043f, 0x87f0fe1f, 0xc308410c, 0x21000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00000414, 0x8090fe1f, 0xc3484904, 0x20000000, 0x00000000, 0x00000000,
		0x0140f0ca, 0x1140afca, 0x078450ca, 0x057e503c, 0x3284502f, 0xf281e114, 0x32817f80, 0x00000000,
		0x0149108a, 0x1940cfca, 0x4886508a, 0x067e2110, 0x5e1b8003, 0xc10880f0, 0x9c001e00, 0x00000000,
		0x0140f0c2, 0x1041afca, 0x078410c2, 0x0d7e523c, 0x2086106f, 0xf291e184, 0x20837f80, 0x00000000,
		0x01493082, 0x1841cfca, 0x49861082, 0x0e7e2130, 0x5e1b8003, 0xc10980f0, 0x9c001e00, 0x00000000,
		0x0083c188, 0x70000f04, 0x1e044280, 0x007820f0, 0x661c8003, 0xc1078130, 0xa4001e00, 0x00000000,
		0x00834328, 0x250cf284, 0x1a114028, 0x479420d0, 0xc208431e, 0x81068410, 0x0210f400, 0x00000000,
		0x82000000, 0x00000000, 0x04444413, 0x8070da13, 0x41580b0d, 0xe1380000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x02222418, 0x81105a03, 0x43885105, 0xe0380000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0fe1f, 0xc338470c, 0xe1180000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c3f, 0x87f0fe1f, 0xc1280504, 0xe0180000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0111143f, 0x87f0fe1f, 0xc328450c, 0xa1100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01111434, 0x8490fe1f, 0xc1180304, 0xa0100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0fe1f, 0xc318430c, 0x61080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c3f, 0x87f0fe1f, 0xc1080104, 0x60080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x0000043f, 0x87f0fe1f, 0xc308410c, 0x21000000, 0x00000000, 0x88000001,
		0x82000000, 0x00000000, 0x00000414, 0x8090fe1f, 0xc3484904, 0x20000000, 0x00000001, 0x309fdeff,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80222200, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x80aaaa80, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x81333300, 0x00000000,
		0x81060000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x81bbbb80, 0x00000000,
		0x82000000, 0x00000000, 0x00000434, 0x84905202, 0x43084104, 0x20000000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x00888c35, 0x84b05602, 0xc3184304, 0x60080000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01111436, 0x84d05a03, 0x43284504, 0xa0100000, 0x00000000, 0x00000000,
		0x82000000, 0x00000000, 0x01999c37, 0x84f05e03, 0xc3384704, 0xe0180000, 0x00000000, 0x00000000,
		0x81460000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x28043084, 0x10420000, 0x00000000,
		0x81460000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x280c3184, 0x30460080, 0x00000000,
		0x81460000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x28143284, 0x504a0100, 0x00000000,
		0x81460000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x281c3384, 0x704e0180, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3084, 0x10420000, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3184, 0x30460080, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3284, 0x504a0100, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3384, 0x704e0180, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x8000070d,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};

const unsigned int sms3_code_buf[]=
{
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00088880, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00111100, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x60000101,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x81020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00199980, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x80000100,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x80000200,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0180, 0x00000000,
		0x04000180, 0x000001e0, 0x000c0000, 0x00130000, 0x60000000, 0xc8000300, 0x00000780, 0x00000000,
		0x040001c0, 0x00000460, 0x000e0000, 0x002f0000, 0x70000001, 0x38000380, 0x00000000, 0x00000000,
		0x00864308, 0x62000f04, 0x32104210, 0x00782190, 0x42088003, 0xc10c8010, 0x04001e00, 0x00000000,
		0x0149108e, 0x11c06fca, 0x48801002, 0x1b7e5244, 0x1382701b, 0xf292218c, 0x3186df80, 0x00000000,
		0x0084c308, 0x030e2584, 0x26104328, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x008043a8, 0x5104a584, 0x02154088, 0x052c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0149100e, 0x01c06fca, 0x48843086, 0x1b7e5244, 0x3086101b, 0xf292208c, 0x1186df80, 0x00000000,
		0x0084c108, 0x450e2584, 0x26004128, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00002010, 0xea144339, 0x61008550, 0x2211cb00, 0x00000000,
		0x0086c318, 0x64000f04, 0x3610c220, 0x007821b0, 0x46090003, 0xc10d8030, 0x08001e00, 0x00000000,
		0x01491082, 0x10406fca, 0x48803006, 0x1b7e5244, 0x1082101b, 0xf2922194, 0x3286df80, 0x00000000,
		0x0084c318, 0x050e2584, 0x2610c338, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0080c3a8, 0x5104e584, 0x06154088, 0x072c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01491002, 0x00406fca, 0x4884508a, 0x1b7e5244, 0x3186301b, 0xf2922094, 0x1286df80, 0x00000000,
		0x0084c118, 0x470e2584, 0x2600c138, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00002030, 0xea144309, 0x61018550, 0x22104b00, 0x00000000,
		0x00874328, 0x66000f04, 0x3a114230, 0x007821d0, 0x4a098003, 0xc10e8050, 0x0c001e00, 0x00000000,
		0x01491086, 0x10c06fca, 0x4880500a, 0x1b7e5244, 0x1182301b, 0xf292219c, 0x3386df80, 0x00000000,
		0x0084c328, 0x070e2584, 0x26114308, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x008143a8, 0x51042584, 0x0a154088, 0x012c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x01491006, 0x00c06fca, 0x4884708e, 0x1b7e5244, 0x3286501b, 0xf292209c, 0x1386df80, 0x00000000,
		0x0084c128, 0x410e2584, 0x26014108, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00002050, 0xea144319, 0x61028550, 0x2210cb00, 0x00000000,
		0x0087c338, 0x60000f04, 0x3e11c200, 0x007821f0, 0x4e080003, 0xc10f8070, 0x00001e00, 0x00000000,
		0x0149108a, 0x11406fca, 0x4880700e, 0x1b7e5244, 0x1282501b, 0xf2922184, 0x3086df80, 0x00000000,
		0x0084c338, 0x010e2584, 0x2611c318, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0081c3a8, 0x51046584, 0x0e154088, 0x032c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0149100a, 0x01406fca, 0x48841082, 0x1b7e5244, 0x3386701b, 0xf2922084, 0x1086df80, 0x00000000,
		0x0084c138, 0x430e2584, 0x2601c118, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00002070, 0xea144329, 0x61038550, 0x22114b00, 0x88000001,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x888c3c85, 0x90720600, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88943d85, 0xb0760680, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x889c3e85, 0xd07a0700, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88a43f85, 0xf07e0780, 0x88000101,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x800c3184, 0x30460080, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80143284, 0x504a0100, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x801c3384, 0x704e0181, 0x300bcdff,
		0x00864308, 0x62000f04, 0x32104210, 0x00782190, 0x42088003, 0xc10c8010, 0x04001e00, 0x00000000,
		0x0086c318, 0x64000f04, 0x3610c220, 0x007821b0, 0x46090003, 0xc10d8030, 0x08001e00, 0x00000000,
		0x00874328, 0x66000f04, 0x3a114230, 0x007821d0, 0x4a098003, 0xc10e8050, 0x0c001e00, 0x00000000,
		0x0149108e, 0x11c06fca, 0x48801002, 0x1b7e5244, 0x1382701b, 0xf292218c, 0x3186df80, 0x00000000,
		0x0084c308, 0x030e2584, 0x26104328, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x008043a8, 0x5104a584, 0x02154088, 0x052c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0149100e, 0x01c06fca, 0x48843086, 0x1b7e5244, 0x3086101b, 0xf292208c, 0x1186df80, 0x00000000,
		0x0084c108, 0x450e2584, 0x26004128, 0x312c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014950e6, 0x1cc06fca, 0x4a8730e6, 0x13fe5254, 0x2985301b, 0xf292a14c, 0x2984ff80, 0x00000000,
		0x00854398, 0x750aa584, 0x2a14c1a8, 0x152c0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x00000000, 0x00000000, 0x00000000, 0x00002010, 0xea144339, 0x61008550, 0x2211cb00, 0x00000000,
		0x0087c338, 0x60000f04, 0x3e11c200, 0x007821f0, 0x4e080003, 0xc10f8070, 0x00001e00, 0x88000001,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x888c3c85, 0x90720600, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88943d85, 0xb0760680, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x889c3e85, 0xd07a0700, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x88a43f85, 0xf07e0780, 0x00000000,
		0x81400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80043084, 0x10420000, 0x00000000,
		0x81070000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00222200, 0x00000000,
		0x81070000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00aaaa80, 0x00000000,
		0x0400021e, 0x73114660, 0x0010f50f, 0x3b150000, 0x80000000, 0x08000400, 0x00000000, 0x80000000,
		0x018805c3, 0x4830000c, 0x402e1241, 0x80006201, 0x70520c00, 0x03100b80, 0x90600000, 0x00000000,
		0x01880643, 0x5830000c, 0x403212c1, 0x80006201, 0x90560c00, 0x03100c80, 0xb0600000, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00024100,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00028111,
		0x014810d2, 0x1a416fca, 0x408710e2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x292c2030, 0xd612c159, 0x63110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0243, 0xa0006200, 0x50161c80, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014810d2, 0x1a416fca, 0x408710e2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x292c2030, 0xd612c159, 0x63110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0242, 0xa0006200, 0x50161480, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014810d2, 0x1a416fca, 0x408710e2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x292c2030, 0xd612c159, 0x63110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0241, 0xa0006200, 0x50160c80, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014810d2, 0x1a416fca, 0x408710e2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x292c2030, 0xd612c159, 0x63110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0240, 0xa0006200, 0x50160480, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x300fe3ff,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00024100,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00028111,
		0x014810d2, 0x1a416fca, 0x408510a2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x29d02030, 0xd612c15c, 0xa3110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0243, 0xa0006200, 0x50161c80, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014810d2, 0x1a416fca, 0x408510a2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x29d02030, 0xd612c15c, 0xa3110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0242, 0xa0006200, 0x50161480, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014810d2, 0x1a416fca, 0x408510a2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x29d02030, 0xd612c15c, 0xa3110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0241, 0xa0006200, 0x50160c80, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
		0x014810d2, 0x1a416fca, 0x408510a2, 0x047e5204, 0x2484909b, 0xf290212c, 0x2582ff80, 0x00000000,
		0x0188c0c3, 0x086b0804, 0x061a4248, 0x29d02030, 0xd612c15c, 0xa3110881, 0x10600000, 0x00000000,
		0x014850c6, 0x18c36fcc, 0x400a0240, 0xa0006200, 0x50160480, 0x03100482, 0x90600000, 0x00000000,
		0x0081c328, 0x60000f0c, 0x40121a41, 0x80006200, 0x90420c00, 0x03118382, 0x304a1900, 0x00000000,
		0x0188c242, 0x18450ccc, 0x40161ac1, 0x80006200, 0xb0020c00, 0x03100582, 0xb0600000, 0x00000000,
		0x0148100e, 0x01c26fca, 0x4080700e, 0x1bfe0000, 0x00000000, 0x00000000, 0x00000000, 0x88000001,
		0x0082c038, 0x61082580, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x303fe3ff,
		0x00824348, 0x76000f04, 0x121242b0, 0x00782090, 0x520d8003, 0xc1048090, 0x2c001e00, 0x80000200,
		0x0082c358, 0x78000f04, 0x1612c2c0, 0x007820b0, 0x560e0003, 0xc10580b0, 0x30001e00, 0x80000100,
		0x81468000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00043484, 0x90520200, 0x00000000,
		0x81468000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000c3584, 0xb0560280, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3484, 0x90520200, 0x00000000,
		0x81440000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x001c3584, 0xb0560280, 0x00000000,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x80000760,
		0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
};

unsigned int sec_in32(volatile unsigned int *a)
{
	return __raw_readl((volatile u32 *)(a));

}

/*
unsigned int sec_in32(volatile unsigned int *a)
{
	u32 val;
	val = readl((volatile u32 *)(a));
	csec_debug(KERN_INFO "in32 %x\n",val);
	return val;
}
*/

/**
 * 
 * 用途：
 * __raw_writel 函数主要用于直接对硬件设备的 I/O 内存空间进行 32 位数据的写入操作。在驱动开发场景中，
 * 当需要与硬件设备（如 PCIe 设备、GPIO 控制器等）进行交互，向设备的寄存器写入控制命令或者数据时，
 * 就会用到这个函数。比如，在操作一个 PCIe 板卡时，要向板卡上特定寄存器写入配置参数，就可以借助 __raw_writel 函数来实现。
 * 
 * 工作原理：
 * 该函数的核心工作原理是直接将传入的 32 位数据 val 写入到指定的内存地址 addr 处。由于使用了 volatile 关键字，
 * 编译器不会对这个内存访问操作进行优化，从而保证每次写入操作都会真实发生，避免因编译器优化而导致的写入失败或者数据不一致问题。
 * 
 */
void sec_out32(volatile unsigned int *a, unsigned int v)
{
	//__raw_writel 是 Linux 内核中用于进行原始内存写操作的函数
	//printk(KERN_INFO "sec_out32 Data 0x%08X written to register\n", v);
	// 打印 a 的地址
    //printk(KERN_INFO "sec_out32 Address of a: %p\n", (void *)a);

	__raw_writel(v,(volatile u32 *)(a));
}

unsigned int jr_in32(volatile unsigned int *a)
{
	if(dma_endian)
		return be32_to_cpu(__raw_readl((volatile u32 *)(a)));
	else
		return le32_to_cpu(__raw_readl((volatile u32 *)(a)));
}

void jr_out32(volatile unsigned int *a, unsigned int v)
{
	if(dma_endian)
		__raw_writel(cpu_to_be32(v),(volatile u32 *)(a));
	else
		__raw_writel(cpu_to_le32(v),(volatile u32 *)(a));
}

u64 m64_2_cpu(volatile void* a)			//dma_endian==1 ? big:little(dma endian)
{
	u64 tmp=0;
	if(dma_endian)
	{
		tmp |= (u64)(be32_to_cpu(*(volatile u32 *)(a+4))) <<32;
		tmp |= (u64)be32_to_cpu(*(volatile u32 *)a);
	}
	else
	{

		tmp |= (u64)(le32_to_cpu(*(volatile u32 *)(a+4))) <<32;
		tmp |= (u64)le32_to_cpu(*(volatile u32 *)a);
	}
	return tmp;
}

void cpu_2_m64(volatile void *a, u64 v)
{
	u32 tmp=0;
	if(dma_endian)
	{
		tmp = v>>32;
		__raw_writel(cpu_to_be32(tmp),a+4);
		tmp = v&0xffffffff;
		__raw_writel(cpu_to_be32(tmp),a);
	}
	else
	{
		tmp = v>>32;
		__raw_writel(cpu_to_le32(tmp),a+4);
		tmp = v&0xffffffff;
		__raw_writel(cpu_to_le32(tmp),a);
	}
}

void sec_out16(void __iomem *a, unsigned short v)
{
	iowrite16(v, a);
}

int check_endian(void)						//big endian return 1
{
	u32 checkm;
	checkm = 1;
	if(*(u8 *)(&checkm)==1)
		return 0;
	else
		return 1;
}

void sec_dump(void *ptr,unsigned int size)
{
	csec_debug2(KERN_INFO "ptr is %llx,dump size is %x\n",(u64 )ptr,size);
	print_hex_dump(KERN_CONT, "", DUMP_PREFIX_OFFSET,
			32, 1,
			ptr, size, false);
	csec_debug(KERN_INFO "\n ");
	return;
}
EXPORT_SYMBOL(sec_dump);

void desc_dump(void *ptr,unsigned int size)
{
	print_hex_dump(KERN_CONT, "DESC-", DUMP_PREFIX_OFFSET,
			16, 4,
			ptr, size, false);
}

static void csec_set_jr_halt(struct csec_priv_t *csec_priv,struct jobring *jr)
{
	unsigned int timeout = 100000;
	struct jr_regs __iomem *regs=NULL;
	csec_debug(KERN_INFO "csec_set_jr_halt called!\n");

	regs = jr->regs;
	/*
	 * mask interrupts since we are going to poll
	 * for reset completion status
	 */
	//setbits32(&regs->jrcfg1, JR_INTMASK);

	/* initiate flush (required prior to reset) */
	if( (le32_2_cpu(sec_in32(&regs->jrcr))& JRCR_RESET) ==  JRCR_RESET)  {}
	else
	{
		sec_out32(&regs->jrcr,cpu_2_le32(JRCR_RESET));
	}
	while (((le32_2_cpu(sec_in32(&regs->jrint)) & JRINT_ERR_HALT_MASK) ==
			JRINT_ERR_HALT_INPROGRESS) && --timeout)
			cpu_relax();

	if ((le32_2_cpu(sec_in32(&regs->jrint)) & JRINT_ERR_HALT_MASK) !=
	    JRINT_ERR_HALT_COMPLETE || timeout == 0) {
		csec_error(KERN_ERR "failed to flush job ring\n");
		return;
	}

}


static int csec_reset_hw_jr(struct csec_priv_t *csec_priv,struct jobring *jr)
{
	unsigned int timeout = 100000;
	struct jr_regs __iomem *regs = NULL;
	csec_debug(KERN_INFO "csec_reset_hw_jr called!\n");

	regs = jr->regs;
	/*
	 * mask interrupts since we are going to poll
	 * for reset completion status
	 */
	//setbits32(&regs->jrcfg1, JR_INTMASK);

	/* initiate flush (required prior to reset) */
	if( (le32_2_cpu(sec_in32(&regs->jrcr))& JRCR_RESET) ==  JRCR_RESET)  {}
	else
	{
		sec_out32(&regs->jrcr, cpu_2_le32(JRCR_RESET));
	}
	while (((le32_2_cpu(sec_in32(&regs->jrint)) & JRINT_ERR_HALT_MASK) ==
			JRINT_ERR_HALT_INPROGRESS) && --timeout)
			cpu_relax();

	if ((le32_2_cpu(sec_in32(&regs->jrint)) & JRINT_ERR_HALT_MASK) !=
	    JRINT_ERR_HALT_COMPLETE || timeout == 0) {
		csec_error(KERN_ERR "failed to flush job ring\n");
		return -1;
	}

	/* initiate reset */
	timeout = 100000;
	sec_out32(&regs->jrcr, cpu_2_le32(JRCR_RESET));
	while ((le32_2_cpu(sec_in32(&regs->jrcr)) & JRCR_RESET) && --timeout)
		cpu_relax();

	if (timeout == 0) {
		csec_error(KERN_ERR "failed to reset job ring\n");
		return -1;
	}

	/* unmask interrupts */
	//clrbits32(&regs->jrcfg1, JR_INTMASK);

	return 0;
}

static inline void start_jr(struct csec_priv_t *csec_priv)
{
	csec_debug(KERN_INFO "start_jr called!\n");
}

static void jr_initregs(struct csec_priv_t *csec_priv,struct jobring *jr_in)
{
	struct jr_regs __iomem *regs=NULL;
	struct jobring *jr = jr_in;

	mphys_addr_t ip_base=0;
	mphys_addr_t op_base=0;

	csec_error(KERN_INFO "jr_initregs called!\n");

	if(jr == &(csec_priv->jr_g[0]))
	{
		ip_base = csec_priv->ring_phy;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size;
	}
	else if(jr == &(csec_priv->jr_g[1]))
	{
		ip_base = csec_priv->ring_phy+array_size;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size;
	}
	else if(jr == &(csec_priv->jr_g[2]))
	{
		ip_base = csec_priv->ring_phy+array_size*2;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*2;
	}
	else if(jr == &(csec_priv->jr_g[3]))
	{
		ip_base = csec_priv->ring_phy+array_size*3;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*3;
	}
	else if(jr == &(csec_priv->jr_g[4]))
	{
		ip_base = csec_priv->ring_phy+array_size*4;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*4;
	}
	else if(jr == &(csec_priv->jr_g[5]))
	{
		ip_base = csec_priv->ring_phy+array_size*5;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*5;
	}
	else if(jr == &(csec_priv->jr_g[6]))
	{
		ip_base = csec_priv->ring_phy+array_size*6;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*6;
	}
	else if(jr == &(csec_priv->jr_g[7]))
	{
		ip_base = csec_priv->ring_phy+array_size*7;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*7;
	}
	else if(jr == &(csec_priv->jr_g[8]))
	{
		ip_base = csec_priv->ring_phy+array_size*8;
		op_base = csec_priv->ring_phy + sizeof(dma_addr_t)*Ring_Size + array_size*8;
	}

	regs = jr->regs;

	sec_out32(&regs->irba_l, 	cpu_2_le32((uint32_t)ip_base));

	sec_out32(&regs->irba_h,	cpu_2_le32((u32)(ip_base >> 32)));

	sec_out32(&regs->orba_l, 	cpu_2_le32((uint32_t)op_base));

	sec_out32(&regs->orba_h, cpu_2_le32((u32)(op_base >> 32)));

	sec_out32(&regs->ors, cpu_2_le32(JR_SIZE));
	sec_out32(&regs->irs, cpu_2_le32(JR_SIZE));

	if(dma_endian)
		sec_out32(&regs->jrcfg0, cpu_2_le32(0x3030));
	else
		sec_out32(&regs->jrcfg0, 0);

#if 0
	sec_out32(&regs->jrcfg1, 0);			//disable irq
#else
	sec_out32(&regs->jrcfg1, cpu_2_le32(le32_2_cpu(sec_in32(&regs->jrcfg1)) |0x102) );										//enable irq	for ccore
#endif

}

#if LINUX_VERSION_CODE>=KERNEL_VERSION(4,15,0)
extern void csec_timer(struct timer_list *mytimer);
#else
extern void csec_timer(unsigned long data);
#endif

static int jr_init(struct csec_priv_t *csec_priv,struct jobring *jr)
{
	unsigned int idx;
	struct ccp90x_hw *hw;
	hw = &csec_priv->hw;

	csec_error(KERN_INFO "jr_init called!\n");
	csec_error(KERN_INFO "csec_priv->ring_virt is %llx,csec_priv->ring_phy %llx\n",(u64)(csec_priv->ring_virt),(u64)(csec_priv->ring_phy));
	memset(jr, 0, sizeof(struct jobring));

	jr->size = JR_SIZE;
	jr->csec_priv = csec_priv;
	if(jr == &(csec_priv->jr_g[0]))
	{
		jr->input_ring = csec_priv->ring_virt;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x1000);
	}else if(jr == &(csec_priv->jr_g[1]))
	{
		jr->input_ring = csec_priv->ring_virt+array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x2000);
	}else if(jr == &(csec_priv->jr_g[2]))
	{
		jr->input_ring = csec_priv->ring_virt+2*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 2*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x3000);
	}else if(jr == &(csec_priv->jr_g[3]))
	{
		jr->input_ring = csec_priv->ring_virt+3*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 3*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x15000);
	}else if(jr == &(csec_priv->jr_g[4]))
	{
		jr->input_ring = csec_priv->ring_virt+4*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 4*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x16000);
	}else if(jr == &(csec_priv->jr_g[5]))
	{
		jr->input_ring = csec_priv->ring_virt+5*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 5*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x17000);
	}else if(jr == &(csec_priv->jr_g[6]))
	{
		jr->input_ring = csec_priv->ring_virt+6*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 6*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x18000);
	}else if(jr == &(csec_priv->jr_g[7]))
	{
		jr->input_ring = csec_priv->ring_virt+7*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 7*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x19000);
	}else if(jr == &(csec_priv->jr_g[8]))
	{
		jr->input_ring = csec_priv->ring_virt+8*array_size;
		jr->output_ring = csec_priv->ring_virt + sizeof(dma_addr_t)*Ring_Size + 8*array_size;
		jr->regs = (struct jr_regs __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x1a000);
	}else
	{
		return -1;
	}


	if (!jr->input_ring)
		return -1;

	if (!jr->output_ring)
		return -1;

	jr->op_size = JR_SIZE * sizeof(struct op_ring);

	memset(jr->input_ring, 0, JR_SIZE * sizeof(dma_addr_t));
	memset(jr->output_ring, 0xff, jr->op_size);
	for(idx=0; idx<JR_SIZE; idx++)
	{
		jr->output_ring[idx].status = (uint32_t)(0xABCDDEAD);
	}

	if(csec_reset_hw_jr(csec_priv,jr))
		return -1;

	start_jr(csec_priv);		//for ccore sec,maybe not need

	jr_initregs(csec_priv,jr);

	spin_lock_init(&jr->i_lock);
	spin_lock_init(&jr->o_lock);
	//spin_lock_init(&jr->iolock);

#if LINUX_VERSION_CODE>=KERNEL_VERSION(4,15,0)
	timer_setup(&jr->timer,csec_timer,0);
#else
	init_timer(&jr->timer);
	jr->timer.function = csec_timer;
	jr->timer.data = jr;
#endif
	jr->timer.expires = jiffies + POLL_INVL;
	add_timer(&jr->timer);

	return 0;
}

static void internal_rng_init(struct csec_priv_t *csec_priv)
{
	void __iomem *regs = NULL;

	regs = (void __iomem *)csec_priv->ba[csec_priv->hw.sec_bar].base_virt;

	sec_out32(regs+0x74c, cpu_2_le32(0x8000031f));
	sec_out32(regs+0x234, cpu_2_le32(0x5500));
	sec_out32(regs+0x700, cpu_2_le32(0x040f014f));
	sec_out32(regs+0x750, cpu_2_le32(0xffffffff));
	sec_out32(regs+0x630, cpu_2_le32(0x2));
}

static void external_rng_init(struct csec_priv_t *csec_priv)
{
	void __iomem *regs = NULL;

	regs = (void __iomem *)csec_priv->ba[csec_priv->hw.sec_bar].base_virt;

	sec_out32(regs+0x74c, cpu_2_le32(0x8000031f));
	sec_out32(regs+0x700, cpu_2_le32(0x040000130));
	sec_out32(regs+0x750, cpu_2_le32(0xffffffff));
	sec_out32(regs+0x748, cpu_2_le32(0x80018000));
}

static void rscp_init(struct csec_priv_t *csec_priv)
{
	void __iomem *regs = NULL;
	unsigned int i, j, offset;
	struct ccp90x_hw *hw;
	hw = &csec_priv->hw;

	regs = (void __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x238);
	sec_out32(regs, 0x00550000);
	regs = (void __iomem *)(csec_priv->ba[hw->sec_bar].base_virt + 0x40000);
	for(i=0; i<sizeof(aes128_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4, aes128_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4, aes128_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cf0, 0);
	sec_out16(regs+0x18cf0, 0);
	offset = sizeof(aes128_code_buf);

	for(i=0; i<sizeof(aes192_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, aes192_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, aes192_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cf2, offset/32);
	sec_out16(regs+0x18cf2, offset/32);
	offset += sizeof(aes192_code_buf);

	for(i=0; i<sizeof(aes256_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, aes256_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, aes256_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cf4, offset/32);
	sec_out16(regs+0x18cf4, offset/32);
	offset += sizeof(aes256_code_buf);

	for(i=0; i<sizeof(sms4_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, sms4_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, sms4_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cf6, offset/32);
	sec_out16(regs+0x18cf6, offset/32);
	offset += sizeof(sms4_code_buf);

	for(i=0; i<sizeof(sha1_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, sha1_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, sha1_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cf8, offset/32);
	sec_out16(regs+0x18cf8, offset/32);
	offset += sizeof(sha1_code_buf);

	for(i=0; i<sizeof(sha256_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, sha256_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, sha256_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cfa, offset/32);
	sec_out16(regs+0x18cfa, offset/32);
	offset += sizeof(sha256_code_buf);

	for(i=0; i<sizeof(sha512_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, sha512_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, sha512_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cfc, offset/32);
	sec_out16(regs+0x18cfc, offset/32);
	offset += sizeof(sha512_code_buf);

	for(i=0; i<sizeof(sms3_code_buf)/32; i++)
	{
		for(j=0; j<8; j++)
		{
			sec_out32(regs+i*32+j*4+offset, sms3_code_buf[i*8+7-j]);
			sec_out32(regs+0x20000+i*32+j*4+offset, sms3_code_buf[i*8+7-j]);
		}
	}
	sec_out16(regs+0x10cfe, offset/32);
	sec_out16(regs+0x18cfe, offset/32);
	offset += sizeof(sms3_code_buf);

	sec_out32(regs+0x10c00, 0x2);
	sec_out32(regs+0x18c00, 0x2);
}

void dump_jr_info(struct csec_priv_t *csec_priv,struct jobring *jr_in)
{
		struct jobring *jr = jr_in;
		int i;
		
		printk(KERN_INFO "output_ring:\n");
		desc_dump(jr->output_ring, (u32)(sizeof(struct op_ring)*Ring_Size));
		printk(KERN_INFO "input_ring:\n");
		desc_dump(jr->input_ring, 8*Ring_Size);

		printk(KERN_INFO "%d descriptor info in ring buffer:\n", Ring_Size);
		for(i=0;i<Ring_Size;i++)
		{
			printk("jr->info[%d]: info.desc_phy=%016llx, info.virt=%016llx, info.desc_lenword=%03d, info.op_done=%03d \n",i, jr->info[i].desc_phys_addr, jr->info[i].desc_virt, jr->info[i].desc_len,jr->info[i].op_done);
			if(jr->info[i].desc_phys_addr != 0)
				desc_dump(jr->info[i].desc_virt, 0x80);
		}
}
/*
 * jr_dequeue
 * return: error return -1, else return 0
 */
int jr_dequeue(struct work_struct *work)
{
	struct jr_regs __iomem *regs=NULL;
	//struct jobring *jr = &jr0[sec_idx];
	int tail,head;
	int hw_idx,idx, i, found;
	volatile uint32_t status;
	void *arg = NULL;
	void *desc_virt =NULL;
	dma_addr_t desc_phy;
	mphys_addr_t op_desc;
	unsigned long flags;
	volatile int timeout;
	volatile int sorsf_timeout;
	int sorsf,orsfcnt=0;
	struct csec_priv_t *csec_priv;
	struct ccp90x_hw *hw;
	struct jobring *jr =container_of(work, struct jobring, dequeue_task);
	csec_priv = jr->csec_priv;
	void (*callback)(struct csec_priv_t * csec_priv_s,u32 *desc_virt_s,dma_addr_t desc_phy_s,u32 status_s, void *arg_s);

	csec_debug2(KERN_INFO "d\n");
	CSEC_DBG2("d\n");
	csec_debug2(KERN_INFO "%p:%d:11!\n", jr,smp_processor_id());
	spin_lock_irqsave(&jr->o_lock,flags);
	csec_debug2(KERN_INFO "%p:%d:22!\n", jr,smp_processor_id());

	regs = jr->regs;

	tail = jr->tail;
	hw_idx = jr->dequeue_hw_idx;
	sorsf = le32_2_cpu(sec_in32(&regs->orsf));

	/*
	 * DQ_TIMEOUT:
	 * Dequeue timeout waiting for data and the status returned by the
	 * output descriptor.
	 * DMA risk: Ideally, after DMA writes data into the host memory,
	 * the data should be accurately read through the jr_dequeue routine.
	 * In fact, on some platforms(such as some ARM servers or some
	 * Intel servers produced by customers), the data fetching after the
	 * DMA write operation is not synchronized under extreme conditions.
	 * Therefore, add a timeout here to avoid this problem.
	 */
	sorsf_timeout = DQ_TIMEOUT;

	while (sorsf && sorsf_timeout)
	{

		head = MREAD_ONCE(jr->head);
		found = 0;

		/* Read the 64 bit Descriptor address from Output Ring.
		 * The 32 bit hign and low part of the address will
		 * depend on endianness of SEC block.
		 */
		op_desc =(mphys_addr_t)m64_2_cpu(&jr->output_ring[hw_idx].desc);
		csec_debug3(KERN_INFO "d%x: h %x,t %x,hx %x,d %llx,jr %llx\n",smp_processor_id(),jr->head,jr->tail,hw_idx,(u64)op_desc,(u64)jr);
		csec_debug3(KERN_INFO "dd%llx\n",jr->output_ring[hw_idx].desc);
		CSEC_DBG3("d%x: h %x,t %x,hx %x,d %llx,jr %llx\n",smp_processor_id(),jr->head,jr->tail,hw_idx,(u64)op_desc,(u64)jr);
		CSEC_DBG3("dd%llx\n",jr->output_ring[hw_idx].desc);
		mb();
		status = jr_in32(&jr->output_ring[hw_idx].status);

		for (i = 0; CIRC_CNT(head,tail + i, jr->size-1) >= 1; i++) {
			idx = (tail + i) & (jr->size-1);
			if (op_desc == (jr->info[idx].desc_phys_addr&ORING_DESC_MASK) ) {
				found = 1;
				break;
			}
		}

		/* Error condition if match not found */
		if (!found)
		{
		#ifndef MAIN_DDR
			csec_debug3(KERN_INFO "dx %llx,h %x,t %x,hx is %x,orsf is %x\n",op_desc,head,tail,hw_idx,le32_2_cpu(sec_in32(&regs->orsf)));
			csec_debug3(KERN_INFO "ddx%llx\n",MREAD_ONCE(jr->output_ring[hw_idx].desc));
			sec_dump(jr->output_ring, (u32)(sizeof(struct op_ring)*Ring_Size));
			sec_dump(jr->input_ring, 8*Ring_Size);
			mdelay(10);
			sec_dump(jr->output_ring, (u32)(sizeof(struct op_ring)*Ring_Size));
			sec_dump(jr->input_ring, 8*Ring_Size);
			//spin_unlock(&jr->o_lock);
			//spin_unlock_irqrestore(&jr->o_lock,flags);
			spin_unlock_irqrestore(&jr->o_lock,flags);
			BUG();
			return -1;
		#else
			/* If Host received a Job Ring interrupt, but there is no ready descriptor
			 * in output ring, then just continue to wait these descriptors ready.
			 * For this situation, a job ring interrupt is alert, but the component of
			 * desciptor transformed by DMA in output ring is on the way.
			 */
			csec_debug3(KERN_INFO "c\n");
			CSEC_DBG3("c\n");
			sorsf_timeout--;
			continue;
		#endif
		}

		mb();
		if(status == 0xABCDDEAD)
		{
			csec_debug3(KERN_INFO "c1\n");
			CSEC_DBG3("c1\n");
			sorsf_timeout--;
			continue;
		}

		desc_phy = jr->info[idx].desc_phys_addr;
		jr->info[idx].desc_phys_addr = 0;
		//jr->info[idx].desc_phys_addr = 0xf0f0f0f0f0f0f0f0UL;					//for debug use
		jr->info[idx].op_done = 1;
		callback = (void *)jr->info[idx].callback;
		arg = jr->info[idx].arg;
		desc_virt = jr->info[idx].desc_virt;
#if 0
		*(unsigned int *)((unsigned long long)(&(jr->output_ring[hw_idx].desc) )+4) = 0xffffffff;		//for debug use
#else
		jr->output_ring[hw_idx].desc = 0xffffffffffffffffULL;//modify for loongson
		jr->output_ring[hw_idx].status = (uint32_t)(0xABCDDEAD);//modify for loongson
#endif
		hw_idx = (hw_idx + 1) & (jr->size-1);
		jr->dequeue_hw_idx= hw_idx;

		csec_debug3(KERN_INFO "d%x,a %llx\n",smp_processor_id(),(u64)arg);
		CSEC_DBG3("d%x,a %llx\n",smp_processor_id(),(u64)arg);

		/* When the job on tail idx gets done, increment
		* tail till the point where job completed out of oredr has
		 * been taken into account
		 */
		if (tail == idx)
		{
			 while (jr->info[tail].op_done)
			 {
			 	jr->info[tail].op_done=0;
				tail = (tail + 1) & (jr->size-1);
			 }
			jr->tail = tail;
		}

		csec_debug2(KERN_INFO "%x\n",sorsf);
		CSEC_DBG2("%x\n",sorsf);
		sorsf --;
		orsfcnt ++;
		mb();
		preempt_disable();
		spin_unlock_irqrestore(&jr->o_lock,flags);

#if 1
		hw = &csec_priv->hw;
		desc_phy &= (~hw->dma_hi_addr);
#endif
		callback(csec_priv,desc_virt,desc_phy,status, arg);

		spin_lock_irqsave(&jr->o_lock,flags);

		//preempt_enable_no_resched();
		preempt_enable();

		if(sorsf==0)
		{
			sec_out32(&regs->orjr, cpu_2_le32(orsfcnt));
			orsfcnt = 0;
#if	PW_CHECK
			timeout = 100000;
			do{
				timeout--;
				mb();
			}while(le32_2_cpu(sec_in32(&regs->orjr))==0 && timeout);
			if(!timeout)
			{
				csec_error(KERN_ERR "jr_dequeue: timeout!\n");
				spin_unlock_irqrestore(&jr->o_lock,flags);
				BUG();
			}

#endif
			sorsf = le32_2_cpu(sec_in32(&regs->orsf));
		}

	}

	if(!sorsf_timeout)
	{
		csec_error(KERN_ERR "jr_dequeue: sorsf_timeout!\n");
	}
	csec_debug2(KERN_INFO "sorsf_timeout:%d\n",sorsf_timeout);
	CSEC_DBG2("sorsf_timeout:%d\n",sorsf_timeout);



	atomic_set(&jr->state,DQ_NOPEND);
	sec_out32(&regs->jrcfg1,cpu_2_le32(0x102));
	sec_out32(&regs->jrint,cpu_2_le32(1));
	spin_unlock_irqrestore(&jr->o_lock,flags);
	csec_debug2(KERN_INFO "%p:%d:4!\n", jr,smp_processor_id());

	csec_debug2(KERN_INFO "q\n");
	CSEC_DBG2("q\n");
	return 1;
}

void sec_dequeue(struct work_struct *work)
{
#if 0
	int i,ret=0;
	struct jr_regs __iomem *regs=NULL;
	unsigned long flags;
	struct csec_priv_t *csec_priv =container_of(work, struct csec_priv_t, dequeue_task);

	//csec_debug(KERN_INFO "sec_dequeue called!\n");
	for(i=0;i<csec_priv->hw.ring_num;i++)
	{
		ret |= jr_dequeue(csec_priv,&(csec_priv->jr_g[i]));
	}

	spin_lock_irqsave(&csec_priv->seclock,flags);
	for(i=0;i<csec_priv->hw.ring_num;i++)
	{
		regs = csec_priv->jr_t.jr[i].regs;
		smp_mb();
		sec_out32(&regs->jrint,cpu_2_le32(1));
		sec_out32(&regs->jrcfg1,cpu_2_le32(0x102));
		atomic_set(&(csec_priv->jr_t.jr[i].state),DQ_NOPEND);
	}
	spin_unlock_irqrestore(&csec_priv->seclock,flags);
	return;
#endif
}

// -1 --- error, can't enqueue -- no space available
int jr_enqueue(struct csec_priv_t *csec_priv,uint32_t *desc_addr,dma_addr_t desc_phys_addr,
	       void (*callback)(struct csec_priv_t *csec_priv,uint32_t *desc_addr,dma_addr_t desc_phys_addr,uint32_t status, void *arg),
	       void *arg)		//enqueue success return 0,unsuccess return -1
{
	struct jr_regs __iomem *regs=NULL;
	struct jobring *jr = NULL;
	struct jr_info *info;
	int head,tail;
	int h2t;
	unsigned long flags;
	int timeout;

	csec_debug2(KERN_INFO "e\n");
	CSEC_DBG2("e\n");

	spin_lock(&csec_priv->seclock);
	preempt_disable();

	jr = &(csec_priv->jr_g[csec_priv->jr_t.i_nr]);

	if(csec_priv->jr_t.i_nr < (RING_NUM-1))
		csec_priv->jr_t.i_nr =  csec_priv->jr_t.i_nr + 1;
	else
		csec_priv->jr_t.i_nr = 0;

	spin_unlock(&csec_priv->seclock);


	spin_lock_irqsave(&jr->i_lock,flags);
	//preempt_enable_no_resched();
	preempt_enable();

	head = MREAD_ONCE(jr->head);
	tail = MREAD_ONCE(jr->tail);
	h2t = CIRC_CNT(head+1, tail,jr->size-1);
	info = &(jr->info[head]);
	/* The descriptor must be submitted to SEC block as per endianness
	 * of the SEC Block.
	 * So, if the endianness of Core and SEC block is different, each word
	 * of the descriptor will be byte-swapped.
	 */
	if ( h2t == 0 )
	{
			csec_debug2(KERN_INFO "f\n");
			CSEC_DBG2("f\n");
			spin_unlock_irqrestore(&jr->i_lock,flags);
			return -EBUSY;
	}

	csec_debug3(KERN_INFO "e%x: h %x, t %x,d %llx,o %llx,jr is %llx,p %x\n",(u32)smp_processor_id(),head,tail,(u64)desc_addr,(u64)arg,(u64)jr,desc_addr[7]);
	CSEC_DBG3("e%x: h %x, t %x,d %llx,o %llx,jr is %llx,p %x\n",(u32)smp_processor_id(),head,tail,(u64)desc_addr,(u64)arg,(u64)jr,desc_addr[7]);

	info->desc_phys_addr = (change_addr_for_sec(desc_phys_addr) | csec_priv->hw.dma_hi_addr);
//	info->desc_phys_addr = change_addr_for_sec(desc_phys_addr);
	info->desc_virt = desc_addr;
	info->callback = (void *)callback;
	info->arg = arg;
	info->op_done = 0;

	/* Write the 64 bit Descriptor address on Input Ring.
	 * The 32 bit hign and low part of the address will
	 * depend on endianness of SEC block.
	 */
	cpu_2_m64(&jr->input_ring[head],(change_addr_for_sec(desc_phys_addr) | csec_priv->hw.dma_hi_addr));

	MWRITE_ONCE(jr->head, (head + 1) & (jr->size-1));

	regs = jr->regs;

	mb();

	sec_out32(&regs->irja, cpu_2_le32(1));
#if PW_CHECK
	timeout=100000;
	do{
		timeout--;
		mb();
	}while(le32_2_cpu(sec_in32(&regs->irja))==0 && timeout);
	if(!timeout)
	{
		csec_error(KERN_ERR "jr_enqueue: timeout!\n");
		spin_unlock_irqrestore(&jr->i_lock,flags);
		BUG();
	}
#endif
	spin_unlock_irqrestore(&jr->i_lock,flags);

	csec_debug2(KERN_INFO "i\n");
	CSEC_DBG2("i\n");
	
	return 0;
}

// -1 --- error, can't enqueue -- no space available
int jr_enqueue_ringx(struct csec_priv_t *csec_priv,unsigned ring_num,uint32_t *desc_addr,dma_addr_t desc_phys_addr,
	       void (*callback)(struct csec_priv_t *csec_priv,uint32_t *desc_addr,dma_addr_t desc_phys_addr,uint32_t status, void *arg),
	       void *arg)		//enqueue success return 0,unsuccess return -1
{
	struct jr_regs __iomem *regs=NULL;
	struct jobring *jr = NULL;

	int head,tail;
	int h2t;
	unsigned long flags;
	int timeout;

	csec_debug2(KERN_INFO "z\n");

	jr = &(csec_priv->jr_g[ring_num]);
	regs = jr->regs;

	spin_lock_irqsave(&jr->i_lock,flags);

	head = jr->head;
	tail = MREAD_ONCE(jr->tail);
	h2t = CIRC_CNT(head+1, tail,jr->size-1);

	/* The descriptor must be submitted to SEC block as per endianness
	 * of the SEC Block.
	 * So, if the endianness of Core and SEC block is different, each word
	 * of the descriptor will be byte-swapped.
	 */
	if ( h2t == 0 )
	{
			spin_unlock_irqrestore(&jr->i_lock,flags);
			return -EBUSY;
	}

	csec_debug3(KERN_INFO "e%x: h %x, t %x,d %llx,o %llx,jr is %llx,p %x\n",(u32)smp_processor_id(),head,tail,(u64)desc_addr,(u64)arg,(u64)jr,desc_addr[7]);

	jr->info[head].desc_phys_addr = (change_addr_for_sec(desc_phys_addr) | csec_priv->hw.dma_hi_addr);
	jr->info[head].desc_virt = desc_addr;
	jr->info[head].callback = (void *)callback;
	jr->info[head].arg = arg;
	jr->info[head].op_done = 0;

	/* Write the 64 bit Descriptor address on Input Ring.
	 * The 32 bit hign and low part of the address will
	 * depend on endianness of SEC block.
	 */
	cpu_2_m64(&jr->input_ring[head],(change_addr_for_sec(desc_phys_addr) | csec_priv->hw.dma_hi_addr));

	jr->head = (head + 1) & (jr->size-1);

	mb();

	sec_out32(&regs->irja, cpu_2_le32(1));
	timeout=100000;
	do{
		timeout--;
		mb();
	}while(le32_2_cpu(sec_in32(&regs->irja))==0 && timeout);
	if(!timeout)
	{
		csec_error(KERN_ERR "jr_enqueue: timeout!\n");
		spin_unlock_irqrestore(&jr->i_lock,flags);
		BUG();
	}

	spin_unlock_irqrestore(&jr->i_lock,flags);
	csec_debug2(KERN_INFO "m\n");

	return 0;
}

int sec_enqueue(struct csec_priv_t *csec_priv,uint32_t *desc_addr,dma_addr_t desc_phy_addr,
	       void (*callback)(struct csec_priv_t *csec_priv,uint32_t *desc_addr,dma_addr_t desc_phy_addr,uint32_t status, void *arg),void *arg)
{
	int ret=0;
	//csec_debug(KERN_INFO " sec_enqueue called!\n");
	ret = jr_enqueue(csec_priv,desc_addr,desc_phy_addr,callback,arg);

	return ret;
}

int sec_enqueue_ringx(struct csec_priv_t *csec_priv,unsigned ring_num,uint32_t *desc_addr,dma_addr_t desc_phy_addr,
	       void (*callback)(struct csec_priv_t *csec_priv,uint32_t *desc_addr,dma_addr_t desc_phy_addr,uint32_t status, void *arg),void *arg)
{
	int ret=0;
	//csec_debug(KERN_INFO " sec_enqueue called!\n");
	ret = jr_enqueue_ringx(csec_priv,ring_num,desc_addr,desc_phy_addr,callback,arg);

	return ret;
}

int sec_init_idx(struct csec_priv_t *csec_priv,struct jobring *jr)
{
	int ret = 0;

	csec_error(KERN_INFO "sec_init_idx called!\n");

	ret = jr_init(csec_priv,jr);
	if (ret < 0) {
		csec_error(KERN_ERR "SEC initialization failed\n");
		return ret;
	}

	return ret;
}

int sec_init(struct csec_priv_t *csec_priv)
{
	int i,ret;

	void __iomem *regs=NULL;
	struct ccp90x_hw *hw;
	hw = &csec_priv->hw;
	csec_debug(KERN_INFO "sec_init called!\n");
	regs = (void __iomem *)csec_priv->ba[hw->sec_bar].base_virt;
	//csec_debug(KERN_INFO "sec_init called!\n");
	//Enable DECO in COS firmware

	if(check_endian())
		dma_endian = 1;
	else
		dma_endian = 0;

	spin_lock_init(&csec_priv->seclock);

	for(i=0;i<hw->ring_num;i++)
	{
		ret = sec_init_idx(csec_priv,&( (csec_priv->jr_g)[i] ));
		if(ret)
			return ret;
		INIT_WORK(&csec_priv->jr_g[i].dequeue_task,(void *)jr_dequeue);
	}
	csec_priv->jr_t.i_nr = 0;

	rscp_init(csec_priv);
	#if RNG_CFG_SEL
	#if RNG_SRC_SEL
		internal_rng_init(csec_priv);
	#else
		external_rng_init(csec_priv);
	#endif
	#endif

	csec_error(KERN_ERR "CCP903T: SEC engine initialized.\n");
	return 0;
}

int sec_halt(struct csec_priv_t *csec_priv)
{
	struct ccp90x_hw *hw;
	int i;

	hw = &csec_priv->hw;

	csec_debug(KERN_INFO "sec_halt called!\n");

	for(i=0;i<hw->ring_num;i++)
	{
		csec_set_jr_halt(csec_priv,&( (csec_priv->jr_g)[i] ));

	}
	return 0;
}

